【发布时间】:2013-10-23 02:08:07
【问题描述】:
我正在使用 upsert=true 的 mongodb 更新方法。
我的数据如下所示:
{"my_id":"1",
"test_list":[{"test_id":1,"test_name":"pppp"}]}
现在我正在使用以下命令:
db.testcol.update({"my_id":1,"test_list.test_id":2},{"$set":{"test_list.$.test_name":"mmmm"}},true,true)
现在我想在“test_list”中插入一个新对象,因为它不存在
但我得到了错误:
Cannot apply the positional operator without a corresponding query field containing an array.
我的操作不能使用“插入”,因为我不知道数据是他们的并且该字段需要更新,还是不是他们的并且需要插入(第一次)
【问题讨论】:
-
Upsert 不能使用位置运算符。 jira.mongodb.org/browse/SERVER-3326您需要为此使用两个查询。
-
也可以参考here
标签: mongodb mongoose mongo-java