让我首先说对不起,如果这个问题得到了回答,但我无法在这个网站上找到其他问题来满足我的需求,更重要的是,工作。
我有以下示例文档,其中包含“地址”的子文档:
{
"_id" : ObjectId("....")
,"addresses" :
[{
"start" : ISODate("1973-07-10T00:11:51.111Z")
,"value" : "123 long road"
}]
}
我需要做的是关闭带有end
属性的现有地址记录,并为带有新start
和value
属性的新地址添加新行。最终,我需要再次执行此操作,因此代码需要更新end
不存在的子文档记录。
下面的代码不起作用,但据我所知:
db.sites.update(
{"_id" : ObjectId("....")
, "addresses.end" : {"$exists" : false}}
,{"$set": {"addresses.$.end" : "fdsa"}});
这给出了错误:
Cannot apply the positional operator without a corresponding query field containing an array.
谁能指出我正确的方向?