2015-07-12 143 views
0

如果我沒有弄錯$set在下面將添加該字段,如果它不存在。mongodb shell:只有在存在的情況下才更新文件

db.coll.update({profession:"devs"}, { $set : { daysSpent : 30 } }, {multi:true}); 

它將設置daysSpent 30與專業「開發者」的所有文檔,無論他們是否有這個領域。

+0

做的文件? – styvane

+0

是的,這就是我想要的 –

+0

是否有選擇像'$ update'而不是'$ set' –

回答

3

您需要喲使用$exists運營商,這將匹配包含字段要更新僅在具有`daysSpent`領域文件daysSpent

db.coll.update(
    { "profession": "devs", "daysSpent": { "$exists": true }, 
    { "$set" : { "daysSpent" : 30 } }, 
    { multi: true } 
) 
+0

所以不存在一個選擇器更新像$更新而不是$集,我沒有任何反對在查詢中使用$退出,但我想知道 –

+0

沒有'$ update'操作符 – styvane

相關問題