У меня есть ниже документа в MongoDB (2.4.5)Удалить поле из всех элементов массива в MongoDB
{
"_id" : 235399,
"casts" : {
"crew" : [
{
"_id" : 1186343,
"withBase" : true,
"department" : "Directing",
"job" : "Director",
"name" : "Connie Rasinski"
},
{
"_id" : 86342,
"withBase" : true
}
]
},
"likes" : 0,
"rating" : 0,
"rating_count" : 0,
"release_date" : "1955-11-11"
}
Я хочу удалить withBase подал из элементов массива внутри casts.crew ..
Я пробовал это
db.coll.update({_id:235399},{$unset: { "casts.crew.withBase" : 1 } },false,true)
ничего не изменилось.
И попробовал это ..
db.coll.update({_id:235399},{$unset: { "casts.crew" : { $elemMatch: { "withBase": 1 } } } },false,true)
он удаляется весь массив экипажа из документа.
Может кто-нибудь, пожалуйста, предоставит мне правильный запрос?
Большое спасибо Сальвадору. Он работал. Вот моя функция 'db.coll.find ({_ id: 235399}). ForEach (function (doc) { var arr = doc.casts.cast; var length = arr.length; для (var i = 0; i
Nancy
Рад, что это помогло. Я добавлю его в свой ответ с вашими учетными данными. –
Более функциональный подход к решению Нэнси является: 'db.coll.find ({_ ID: 235399}). Foreach (функция (док) { doc.casts.crew.forEach (функция (экипаж) { удалить команду .withBase; }) db.coll.save (doc); }); ' –