根据另一个集合更新集合的字段-MongoDB

时间:2020-07-10 06:21:16

标签: mongodb

我有两个集合。集合A的结构是

{
     id:
     product:
}

集合B的结构是

{
     id:
     product:
     status:
}

我想更新集合B,就像集合A中存在某种产品一样,那么它将状态1设置为集合B的相应文档。

SQL语法就像

UPDATE B SET B.STATUS = 1 WHERE B.PRODUCT IN (SELECT PRODUCT FROM A);

我只需要在MongoDB中做同样的事情。预先感谢。

1 个答案:

答案 0 :(得分:2)

在MongoDB 4.2中,您可以通过聚合来做到这一点。

  • 集合集合A
  • $lookup来自集合B,本地和国外字段均设置为“产品”
  • $unwind从查找返回的数组
  • $replaceRoot将查找的文档制作为根文件
  • $project status: {$literal:1}
  • $merge,且集合B