2015-07-13 192 views
0

我有一個MongoDB的文件是這樣的:如何從MongoDB文檔中刪除嵌套對象的屬性?

{ 
    "_id": ObjectId("5589044a7019e802d3e9dbc5"), 
    "sessionId": LUUID("f49d4280-ced0-9246-a3c9-a63e68e1ed45"), 
    "teamId": LUUID("6ef7d1a8-f842-a54c-bd8c-daf6481f9cfc"), 
    "variableId": LUUID("59d1b512-eee2-6c4b-a5b5-dda546872f55"), 
    "values": { 
     "725400": 691.0000000000000000, 
     "725760": 686.0000000000000000, 
     "726120": 683.0000000000000000, 
     "726480": 681.0000000000000000, 
     "726840": 679.0000000000000000, 
     "727200": 678.0000000000000000, 
     "727560": 677.0000000000000000, 
     "727920": 676.0000000000000000 
    }, 
    "variableType": 2, 
    "isSet": false, 
    "teamNumber": 2, 
    "simPageIds": [] 
} 

我有一種情況,我必須從我的文檔的"values"屬性中刪除特定的屬性。例如,我想從"values"屬性中刪除值"727920"

由於"Values"不是數組,我不能在這裏使用$pull。我需要的是刪除

"727920" : 676.0000000000000000"values"

什麼是正確的方法來做到這一點?

回答

6

使用$unset如下:

db.collectionName.update({},{"$unset":{"values.727920":""}}) 

編輯 更新多個文檔使用update options,如:

db.collectionName.update({},{"$unset":{"values.727920":""}},{"multi":true}) 
+0

它的工作原理@yogesh。謝謝。但是我的收藏中完全有超過50個文件。但是,當我執行上述查詢時,第一個文檔只被更新。我必須做什麼才能更新我收藏中的所有文檔? – Sam

+1

@Samuel檢查編輯答案使用mongo'multi:true' – Yogesh

+0

它工作在@yogesh。謝謝 – Sam