2016-10-03 60 views
1

考慮這樣一個文件:如何僅在MongoDB文檔字段存在時才更新它們?

{ 
    "_id": "PmjoDDjKPHZSKzbGB", 
    "name": "Foo", 
    "parent": null, 
} 

我想更新一些與此對象的字段:

data = { 
    "name": "Bar", 
    "nonExistingField": "moon", 
    "otherNonExistingField": "sun" 
} 

如何使用update()data對象更新蒙戈文件無插入nonExistingFieldotherNonExistingField

+0

如果這些字段不存在,文檔是否應該更新? –

+0

然後更新不會執行任何操作。所以我並不在乎。 – dagatsoin

回答

0
db.collection.update(
{"_id": "PmjoDDjKPHZSKzbGB","fieldToBeUpdated":{$exists:true}}, 
{$set: {"fieldToBeUpdated":date} 
); 

過濾器文檔檢查對應於_id的相等條件。另外,如果'fieldToBeUpdated'存在,它只會提取文檔。

更新文檔將該字段等同於聲明的JSON對象。

相關問題