2012-12-17 17 views
3

我有一個名爲'Foo'的集合。我想更新Foo集合中的所有文檔,其中bar值爲100到1000.在MongoDB中運行此更新以獲得有效更新的最佳方式是什麼?MongoDB如何做到這一點where子句更新

+0

你所要做的是不可能用一個更新語句。您可以使用本文中的其他方法: - http://stackoverflow.com/questions/8342725/how-to-update-a-field-in-mongodb-using-existing-value –

+0

我不認爲這是正確的;請參閱下面的回覆。 – paulmelnikow

回答

6

使用$set運營商這樣做:

db.foo.update({bar: 100}, {$set: {bar: 1000}}, false, true) 

第四個參數設置multi選項設置爲true,這樣你更新所有匹配文檔,而不只是第一個。

3.2 UPDATE

最新版本的MongoDB提供updateMany方法是一個比較直觀:

db.foo.updateMany({bar: 100}, {$set: {bar: 1000}})