[英]MongoDB Aggregation to conditionally update usernames in all of the collection with large number of documents
[英]how to update all documents after aggregation mongodb?
我有两个集合A和B ,我在其他集合B中引用了一个字段,因此汇总了两个结果:
[{"name":"Adam","Average-Count":"20.22","price":"24","_id":2}, ...]
集合A中的文件是:
[{"name":"Adam","Average-Count":"0","Last-Name":"Smith","_id":2},....]
我想更新集合A中的平均计数字段的所有默认值,以纠正我在聚合后获得的值是一种更新单个查询中的所有文档的方法,还是我们可以更新聚合管道中的文档?
有没有办法更新单个查询中的所有文档,或者我们是否可以更新聚合管道中的文档?
从MongoDB 4.2开始,update命令可以使用聚合管道进行更新。 该管道目前可以包括以下几个阶段: $ set , $ unset和$ replaceWith 。
由于您的问题涉及使用$ lookup阶段首先在管道中加入集合,因为这当前不是受支持的阶段,您可以:
$merge
可以合并结果(插入新文档,合并文档,替换文档,保留现有文档,使操作失败,使用自定义更新管道处理文档)到现有集合中。 例如:
{ "$merge": {
into: "A",
on: "_id",
whenMatched: "replace",
whenNotMatched: "insert"
}}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.