0
Мне нужно установить поле content
элементу точки, заданному идентификатором.mongodb: обновить вложенное поле, которое задано двумя переменными
{
"_id" : "kuwBhxAwEsJxc6oXc",
"points" : [
{
"id" : "xdB8TbFweTbc9fecg",
"pos" : [
604,
169
]
},
{
"id" : "uLoorpzQWm49KZ4w3",
"pos" : [
197,
176
]
}
}
}
Так что я получил docId = kuwBhxAwEsJxc6oXc
, pointId = uLoorpzQWm49KZ4w3
и content = 'anything'
. Я попытался это:
Collection.update(
{ _id: docId, 'points.id': pointId },
{ $set: { content: content } }
);
Результат должен быть:
{
"_id" : "kuwBhxAwEsJxc6oXc",
"points" : [
{
"id" : "xdB8TbFweTbc9fecg",
"pos" : [
604,
169
]
},
{
"id" : "uLoorpzQWm49KZ4w3",
"pos" : [
197,
176
],
"content": "anything"
}
}
}
Просто для понимания: Если я хочу удалить один полный набор (id, pos и content), мне нужно выполнить '{$ unset: {'points. $': ''}}'? – user3142695
Вы должны использовать '$ pull' следующим образом:' Collection.update ({_ id: docId}, {$ pull: {points: {id: pointId}}}); ' –
Я понимаю. Спасибо. – user3142695