MongoDB:无条件更新?

Mat*_*ond 55 mongodb

这似乎是一个愚蠢的问题,但我还没有找到答案.如果我只想将相同的field->值添加到MongoDB集合中的每条记录中,那么适当的shell命令是什么?我尝试使用空白查询({})进行多次更新但导致此错误:

多次更新仅适用于$运算符

我对如何解决这个问题感到有些困惑.有什么建议?

Cam*_*ron 110

错误说明了一切:您只能使用$修饰符运算符修改多个文档.你可能有这样的事情:

> db.coll.update({ }, { a: 'b' }, false, true);
Run Code Online (Sandbox Code Playgroud)

这通常会替换集合中的第一个对象,{ a: 'b' }if multi为false.您不希望用同一文档替换集合中的所有对象!

改为使用$set运算符:

> db.coll.update({ }, { '$set': { a: 'b' } }, false, true);
Run Code Online (Sandbox Code Playgroud)

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