如何在mongodb中使用$ in运算符加入两个集合?

时间:2018-07-20 06:16:47

标签: mongodb mongodb-query

我想用$ in运算符加入两个集合。这是收集示例

enter image description here

如何获得如下输出:

{
   "_id":10000,
   "items": [
              {
                  "_id":12345,
                  "productName": "laptop",
                  "unitPrice": 1000
              },
              {
                  "_id":54321,
                  "productName": "mouse",
                  "unitPrice": 20
              }

            ]
}

请帮助。预先感谢。

1 个答案:

答案 0 :(得分:1)

您可以在数组上使用$lookup,并且可以将as指定为items,这将覆盖现有数组。

根据文档:

  

如果您的localField是一个数组,则可能要在管道中添加$ unwind阶段。否则,localField和foreignField之间的相等条件为foreignField:{$ in:[localField.elem1,localField.elem2,...]}

这就是您需要的

尝试:

db.orders.aggregate([
    {
        $lookup: {
            from: "products",
            localField: "items",
            foreignField: "_id",
            as: "items"
        }
    }
])