2014-03-12 124 views
0

Mongodb中有更新記錄並刪除更新版本中不存在的字段的方法嗎?更新Mongodb收集記錄,不保留不在新記錄中的字段

像現有的記錄是:

{ 
    "id": "helloworld", 
    "icon": "globe", 
    "title": "Hello World!", 
} 

當與此更新它看起來沒有更新,因爲它不會放棄「圖標」。

{ 
    "id": "helloworld", 
    "title": "Hello World!", 
} 

我能想到的唯一選擇是刪除記錄並重新插入或找出不存在的字段並使用$ unset。

我只想知道是否有更好的方法來做我想要的Mongodb。

回答

1

更新方法還可以完全替代文檔時,如果該更新文件只包含字段:值對(而不是使用更新運算符,如$設置)

有關示例,

> db.world.insert({ 
    "id": "helloworld", 
    "icon": "globe", 
    "title": "Hello World!", 
    }) 

> db.world.update( 
    { id: "helloworld" }, 
    { "id": "helloworld", title: "Hello World!" } 
) 

> db.world.find() 
{ "_id" : ObjectId("5320e93b80b181227adb0e24"), 
    "id" : "helloworld", 
    "title" : "Hello World!" 
} 

對於另一個例子,你還可以看到

http://docs.mongodb.org/manual/reference/method/db.collection.update/#example-update-replace-fields

希望這有助於

+0

你是對的。我的更新問題不是由Mongodb引起的。這是由應用程序的其他部分引起的,這些部分的字段沒有被刪除。感謝您澄清此功能。 –