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}})我明白。非常感谢。