2011-04-07 59 views
47

這似乎是一個愚蠢的問題,但我還沒有找到答案。如果我只是想爲MongoDB集合中的EVERY記錄添加相同的field-> value,那麼適當的shell命令是什麼呢?我試圖做一個空白查詢多更新({}),但導致這個錯誤:MongoDB:無條件更新?

多更新只適用於$運營商

我有點不解如何去解決這個。有什麼建議麼?

回答

98

錯誤說明了一切:您只能使用$ modifier operators修改多個文檔。你可能有這樣的事情:

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

這通常{ a: 'b' }如果multi是虛假的取代第一目的的收藏。你不想用同一個文檔替換集合中的所有對象!

使用$set operator代替:

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

這將每個文件(如有必要創建它)的a屬性設置爲'b'

+0

感謝您的幫助!這確實是我的錯誤。 – 2011-04-07 22:45:05

+1

'$ set'不含引號也可以 – Jaider 2016-04-14 15:44:38