【发布时间】:2019-08-21 08:56:58
【问题描述】:
以下是来自https://docs.mongodb.com/manual/reference/operator/update/positional/#examples的修改示例
db.students.insert([
{ "_id" : 1, "grades" : [ 85, 80, 80 ] },
{ "_id" : 2, "grades" : [ 88, 90, 92 ] },
{ "_id" : 3, "grades" : [ 85, 100, 90 ] }
])
db.students.updateOne(
{ _id: 1, grades: 80 },
{ $set: { "grades.$" : 82 } }
{ multi: true }
)'
我希望{multi: true} 更新多个符合选择器标准的文档。
事实上,以下似乎也不起作用:
db.students.insert([
{ "_id" : 1, "grades" : [ 85, 82, 82 ] },
{ "_id" : 2, "grades" : [ 88, 90, 92 ] },
{ "_id" : 3, "grades" : [ 80, 100, 90 ] }
])
db.students.updateOne(
{ _id: 1, grades: 80 },
{ $set: { "grades.$" : 82 } }
{ multi: true }
)'
我希望第三个文档更新为{"_id" : 3, "grades" : [82, 100, 90]}
【问题讨论】:
-
{multi: true}将更新多个文档,但_id是唯一的...如果您查询特定的_id值,您将最多更新 1 个文档。
标签: mongodb-query positional-operator