2016-03-06 42 views
1

如果我有以下文件: {_id:1,名稱: 「奧拓」,顏色: 「紅色」,CNO: 「H410」,速度:40,mfdcountry: 「印度」}

如果我發出兩條命令。有什麼不同?

Case1: 
 
db.car.findAndModify({ 
 
query: { name: "Alto" }, 
 
update: { speed: 20, color: "Yellow" } 
 
}) 
 

 
Case2: 
 
db.car.findAndModify({ 
 
query: { name: "Alto" }, 
 
update: {$set:{ speed: 20, color: "Yellow" }} 
 
})

回答

1

案例1將改變整個文檔,除了_id。

`{ "_id" : 1, "speed" : 20, "color" : "Yellow" }` 

Case2只會更改$ set中的屬性。

`{ "_id" : 1, "name" : "Alto", "color" : "Yellow", "cno" : "H410", "speed" : 20, "mfdcountry" : "India" }` 
4

如果您使用的第一個更新命令的文件將被更新,但你沒有在更新語句包含的字段將被取消設置。結果看起來像這樣:

{ _id: 1, color: "Yellow", speed:20} 

在第二種情況下,使用$ set,指定的字段將被更新,而其他保持不變。這將是結果

{ _id: 1, name: "Alto", color: "Yellow",cno: "H410",speed:20,mfdcountry: "India"} 
+0

非常感謝!我剛開始學習MongoDB。我知道這是一個noob問題 –