【发布时间】:2014-09-27 00:51:00
【问题描述】:
首先让我说对不起,如果这个问题已经得到解答,但我无法在这个网站上找到其他问题来满足我的需要,更重要的是,工作。
我有下面的示例文档,子文档为“地址”:
{
"_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.
谁能指出我正确的方向?
【问题讨论】:
标签: mongodb subdocument