2016-07-05 45 views
2

我正面临着使用MongoDB Aggregation Framrwork进行此查询的困难。如何使用MongoDB将对象ID数组“加入”

我有一个指令集具有对象的ID从产品例如数组:

{ 
    _id: "5759b760aeacbfa420943d84", 
    products: [ 
    "57718a2c9473f30ae88d1875", 
    "57727d988d7e581809b454a1", 
    "577bda7da756e2180507a944" 
    ] 
} 

这里是我的产品ocllection一个文档的例子:

{ 
    _id: "57718a2c9473f30ae88d1875", 
    name: "Soap A" 
} 

我怎样才能让一个聚合查询命令来获取包含的产品文档列表?

回答

1

简短的回答你不能。 聚合仅适用于一个集合。

但是,如果您使用的是猫鼬,您可以使用查询和“.populate”的方法

CollectionModel.find({}).populate('products').exec(function(err, items) {}) 

更多填入http://mongoosejs.com/docs/populate.html

但只适用细节,但是的NodeJS应用程序语言你正在使用看看一些ORM框架mongo

我希望可以帮助

+0

但内部做Mongoose使另一个查询来组装的权利? –

+1

是的,这是正确的 – Tim

+0

嗯,好,非常感谢。 –