У меня есть коллекция структура, как так:
albums: {
2oBkjqYFwf3vrgDj4: {
_id: "2oBkjqYFwf3vrgDj4",
titles: [
{
titleText: "i am an album"
},
{
titleText: "this is my other title"
}
]
}
}
Я хочу сделать что-то вроде ниже, чтобы обновить, где TitleText равно что-то, а затем изменить его:
db.albums.update({"_id": "2oBkjqYFwf3vrgDj4", "titles": {$elemMatch: {"titleText": "i am an album"}}},
{$set: {
"titles.titleText": "i am not an album"
}
)
Я знаю, что я мог бы сделайте foreach, но это кажется большим количеством потраченных впустую ресурсов, поскольку я планирую иметь индекс на titles.titleText
.
Есть ли что-то, что мне не хватает, или нет простого способа сделать это? Я использую Meteor, но я не думаю, что это должно изменить любую логику, если есть способ сделать это в MongoDB.
Спасибо всем!
Возможный дубликат [Обновить поддокумент, содержащийся в массиве, содержащемся в документе MongoDB] (http://stackoverflow.com/questions/13777097/update-an-subdocument-contained-in-an-array-contained-in -a-mongodb-document) – 1615903