如何使用MongoDB进行对象id数组的“连接”

时间:2016-07-05 20:25:22

标签: mongodb nosql

我正面临着使用MongoDB Aggregation Framrwork进行此查询的一些困难。

我有一个订单集合,其中包含来自产品示例的对象ID数组:

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

以下是我的产品ocllection中的一个文档示例:

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

如何在订单中进行聚合查询以获取包含产品文档的列表?

1 个答案:

答案 0 :(得分:1)

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

但是,如果您使用的是mongoose,则可以使用查询和'.populate'方法

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

有关填充http://mongoosejs.com/docs/populate.html

的更多详细信息

但是这只适用于nodejs应用程序但是你使用的语言会看一些mongo的ORM框架

我希望有帮助