Javascript mongodb:更新嵌套字段,由两个变量给出
我需要将字段Javascript mongodb:更新嵌套字段,由两个变量给出,javascript,json,mongodb,meteor,Javascript,Json,Mongodb,Meteor,我需要将字段content设置为id给定的点元素 { "_id" : "kuwBhxAwEsJxc6oXc", "points" : [ { "id" : "xdB8TbFweTbc9fecg", "pos" : [ 604, 169 ] }, { "id" : "uLoor
content
设置为id给定的点元素
{
"_id" : "kuwBhxAwEsJxc6oXc",
"points" : [
{
"id" : "xdB8TbFweTbc9fecg",
"pos" : [
604,
169
]
},
{
"id" : "uLoorpzQWm49KZ4w3",
"pos" : [
197,
176
]
}
}
}
所以我得到了docId=kuwBhxAwEsJxc6oXc
,pointId=ulorpzqwm49kz4w3
和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"
}
}
}
您需要在更新中使用,如下所示:
Collection.update(
{_id: docId, 'points.id': pointId},
{$set: {'points.$.content': content}}
);
只是为了理解:如果我想删除一个完整的集合(id、pos和内容),我必须执行
{$unset:{'points.$':'}}
?您可以像这样使用$pull
:Collection.update({code>id:docId},{$pull:{points:{id:pointId}})代码>我明白。非常感谢。