2016-03-30 31 views

回答

4

如果您想申請更新到集合中的每個文檔,使用{multi:true}選項

db.collection.update({},{$set: {'column' : 'value'}},{multi:true}); 

有關更多詳細信息,請參閱collection.update

但是,如果您想更新選定數量的文件,您將需要更長的路線。

db.collection.find().limit(10).forEach(function(o){ 
    o.column = some_value; // replace some_value with real one. 
    db.collection.update({_id:o._id},o); 
}); 
+0

感謝答覆,但我得到這個錯誤:db.collection.find(...)限制(...)更新不是一個函數: –

+0

沒有,它不工作的方式。對不起,我粘貼了你的命令。現在試試。 – Saleem

+0

@saleem,OP正在要求限制多重更新。您在那裏的更新將更新集合中的每個文檔,並且不正確的語法,因爲第一個參數應該是查詢選擇器,而不是更新 – Ben

0

默認情況下,它僅更新找到的前1個文檔。您需要添加multi = true作爲update()來更新全部選項。不幸的是,更新()沒有限制選項,以便您可以將其限制在10

你可能要做找到()的限制,然後再像在這篇文章中提到的單獨更新每個文檔:

How to limit number of updating documents in mongodb

相關問題