这似乎是一个愚蠢的问题,但我还没有找到答案。如果我只想将相同的field->值添加到MongoDB集合中的每条记录中,那么适当的shell命令是什么?我尝试使用空白查询({})进行多次更新,但这导致了此错误:
多次更新仅适用于$运营商
我对如何解决这个问题感到有些困惑。有什么建议吗?
答案 0 :(得分:108)
错误说明了一切:您只能使用$
modifier operators修改多个文档。你可能有这样的事情:
> db.coll.update({ }, { a: 'b' }, false, true);
如果{ a: 'b' }
为false,那么通常替换替换集合中的第一个对象multi
。您不希望用同一文档替换集合中的所有对象!
改为使用$set
operator:
> db.coll.update({ }, { '$set': { a: 'b' } }, false, true);
这会将每个文档的a
属性(根据需要创建)设置为'b'
。