【发布时间】:2020-06-08 03:31:31
【问题描述】:
您好,我需要帮助 mongodb 通过数组值在一个查询中更新多条记录:
此数据
{
"_id" : ObjectId("5edcd82197ace301c45ccb02"),
"date" : NumberInt(20200607),
"result" : [
{
"_id" : ObjectId("5edcd82197ace301c45ccb03"),
"balance" : NumberInt(300),
},
{
"_id" : ObjectId("5edcd82197ace301c45ccb04"),
"balance" : NumberInt(200),
}
]
}
查询
use auth;
db.getCollection("dailyreportbalace").updateMany(
[{
"_id": ObjectId("5edcd82197ace301c45ccb02"),
"result._id": ObjectId("5edcd82197ace301c45ccb03")
},{
"_id": ObjectId("5edcd82197ace301c45ccb02"),
"result._id": ObjectId("5edcd82197ace301c45ccb04")
}],
[{
"$set": { "result.$.balance": NumberInt(60) }
},{
"$set": { "result.$.balance": NumberInt(80) }
}],
{upsert: true, multi: true}
)
错误查询 E QUERY [js] 错误:更新操作文档必须包含原子操作符:
【问题讨论】:
-
你做错了,如果你看更新docs,第一个参数是
query,不能是数组。