2015-07-13 2 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" имущества моего документа. например, я хочу удалить значение "727920" из "values".

С "Values" не массив, я не могу использовать $pull здесь. Мне нужно снять

"727920" : 676.0000000000000000 от "values".

Каков правильный способ сделать это?

ответ

6

Используйте $unset, как показано ниже:

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

EDIT Для обновления нескольких документов используют update options как:

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

Он работает @yogesh. Благодарю. Но у меня есть больше 50 документов в моей коллекции. Но когда я выполняю вышеуказанный запрос, первый документ обновляется только. Что мне нужно сделать, чтобы обновить весь мой документ в моей коллекции? – Sam

+1

@Samuel проверить отредактированный ответ использовать mongo 'multi: true' – Yogesh

+0

Это работает @yogesh. благодаря – Sam

Смежные вопросы