This seems like a silly question but I haven't yet found the answer. If I simply wanted to add the same field->value to EVERY record in a MongoDB collection, what would be the appropriate shell command to do so? I tried doing a multi update with a blank query ({}) but that resulted in this error:

multi update only works with $ operators

我对如何避开这件事有点困惑.有什么建议吗?

推荐答案

错误说明了一切:使用$ modifier operators只能修改多个文档.你可能有过这样的经历:

> db.coll.update({ }, { a: 'b' }, false, true);

如果multi为假,则通常会以{ a: 'b' }作为集合中的第一个对象.您不想用同一个文档替换集合中的所有对象!

$set operator来代替:

> db.coll.update({ }, { '$set': { a: 'b' } }, false, true);

这将把每个文档(根据需要创建)的a属性设置为'b'.

Mongodb相关问答推荐

如何在Mongo Aggregate Query中创建集合的对象ID数组,并在列表中查找另一个集合中的ID

Mongo按最大分组排序

尽管前一阶段输出文档,$group stage 仍返回零文档

有没有一种方法可以找到一个文档并通过 Go 更改 mongodb 中的 id/value 来克隆它

使用 $addFields 将字段添加到 $lookup 结果中的每个项目

映射数组导致 mongodb 聚合

Nestjs中不同语言数据的mongodb聚合代码

连接到远程 mongo 服务器导致异常连接失败

是否可以迭代 mongo 游标两次?

MongoDB 更改流副本集限制

使用 Flask-pymongo 扩展通过 _id 在 MongoDB 中搜索文档

Mongo:统计一组文档中单词出现的次数

字段类型在 MongoDB 索引中是否重要?

如何知道 MongoDB 集合大小?

具有简单密码认证的 MongoDB 副本集

带有 Java 驱动程序的 MongoDB 聚合

Mongoose / MongoDB 用户通知方案建议

多次使用位置 `$` 运算符来更新嵌套数组

停止副本集 MongoDB

MongoDB 用 $type 匹配一个数组?