MongoDB如何更新与文档数组中的条件匹配的第一项?

时间:2018-12-24 09:01:32

标签: arrays mongodb mongo-shell

我有一个示例文档:

{
    _id: 1,
    exams: [
               {name: 'a', score: 2},
               {name: 'b', score: 9},
               {name: 'c', score: 7}
           ]
}

对于由score指定的文档,我需要将score数组中exams高于7的第一个元素的_id设置为10。

因此,对于示例文档,我需要将其更新为:

{
    _id: 1,
    exams: [
               {name: 'a', score: 2},
               {name: 'b', score: 10},
               {name: 'c', score: 7}
           ]
}

此任务的Mongo shell查询是什么?

1 个答案:

答案 0 :(得分:0)

使用$ gt查找更高的分数

updateOne({"exams.score":{ $gt: 7 }},{$set:{"exams.$.score":"10"})