В MongoDB, как я могу увеличить несколько значений? - PullRequest
0 голосов
/ 29 апреля 2020

Документ базы данных выглядит следующим образом:

{   "_id" : 12345,
    "options" : [ 
        {
            "no" : 1,
            "apples" : 0
        }, 
        {
            "no" : 2,
            "apples" : 0
        }, 
        {
            "no" : 3,
            "apples" : 0
        }
    ]
}

, и я хочу (с одним запросом) увеличивать яблоки только на числах 1 и 3, каждый по одному. Спасибо.

1 Ответ

1 голос
/ 29 апреля 2020

Вы можете использовать arrayFilters для обновления полей в массиве:

вот запрос, который я написал для обновления значений:

db.sample.update(
  {},
  {
    $inc:{
      "options.$[options].apples":1
    }
  },
  {
    arrayFilters:[
      {
        "options.no":{
          $in:[1,3]
        }
      }
    ]
  }
)

Вы можете установить свои фильтры в arrayFilters в соответствии с вашими требованиями.

Подробнее о arrayFilters читайте здесь .

Надеюсь, это поможет:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...