【问题标题】:How can I join two collections with $in operator in mongodb?如何在 mongodb 中使用 $in 运算符加入两个集合?
【发布时间】:2018-12-28 09:19:38
【问题描述】:

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

如何获得如下输出:

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

            ]
}

请帮忙。提前致谢。

【问题讨论】:

    标签: mongodb mongodb-query


    【解决方案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"
            }
        }
    ])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-10
      • 2020-09-03
      • 2012-09-27
      • 1970-01-01
      • 2012-09-15
      • 2020-05-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多