【发布时间】:2020-01-18 13:53:18
【问题描述】:
如果我的数据库中有以下文档:
{
"_id" : MainId,
"subdoc" : [
{
"_id" : SubdocId,
"userid" : "someid",
"toupdate": false,
},
{
"_id" : SubdocId2,
"userid" : "someid2",
"toupdate": false,
}
],
"extra" : [
"extraid1",
"extraid2"
]
}
如何更新 ID (SubdocId2) 必须匹配且 SubdocId2 的用户 ID 为“someid2”或值“extraid1”存在于“extra”中的子文档 SubdocId2?
我得到的最远的是:
db.coll.update({
"subdoc._id":"SubdocId2", {
$or: ["extra":{$in:["extraid1"]}, "subdoc.userid":"someid2"]
}
}, {"subdoc.$.toupdate":true})
也许我忘了引用一些东西,但我收到了一个错误(SyntaxError: invalid property id)
【问题讨论】:
-
SubdocId2 是字符串吗?
-
技术上它是一个 ObjectId。
-
好的,所以在您的更新中您需要使用 ObjectId。 “subdoc._id”:ObjectId('SubdocId2')。您正在使用字符串
标签: mongodb mongodb-query