MongoDB更新内嵌list中某个字段的值

Posted on 2021-05-22 19:21  守护锁链  阅读(1365)  评论(0编辑  收藏  举报

更新内嵌的list中某个字段的值,主要使用了arrayFilters参数

插入数据

db.students2.insertMany([
  {
    "_id" : 1,
    "grades" : [
       { "grade" : 80, "mean" : 75, "std" : 6 },
       { "grade" : 85, "mean" : 90, "std" : 4 },
       { "grade" : 85, "mean" : 85, "std" : 6 }
    ]
  }
  {
     "_id" : 2,
     "grades" : [
        { "grade" : 90, "mean" : 75, "std" : 6 },
        { "grade" : 87, "mean" : 90, "std" : 3 },
        { "grade" : 85, "mean" : 85, "std" : 4 }
     ]
  }
])

更新

db.students2.update(
   { },
   { $set: { "grades.$[elem].mean" : 100 } },
   {
     multi: true,
     arrayFilters: [ { "elem.grade": { $gte: 85 } } ]
   }
)

Copyright © 2024 守护锁链
Powered by .NET 8.0 on Kubernetes