MongoDB Как обновить первый элемент, который соответствует условию в массиве документов? - PullRequest
0 голосов
/ 24 декабря 2018

У меня есть образец документа:

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

Мне нужно установить score первого элемента, который имеет score выше 7 в массиве exams, равным 10, длядокумент, указанный как _id.

Так что в случае примера документа мне нужно обновить его до:

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

Каким будет запрос оболочки Mongo для этой задачи?

1 Ответ

0 голосов
/ 24 декабря 2018

Используйте $ gt, чтобы найти более высокий балл

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