Как обновить все строки соответствующего запроса? - PullRequest
0 голосов
/ 04 марта 2020

Я использую следующий код:

for loop:
   col.update(
                {"name" : "abc", "mvr_code" : mvr_code)},
                {'$set': { "reaction": reaction}}
                )

мой БД выглядит примерно так:

{name:'abc', mvr_code:1}
{name:'abc', mvr_code:1}
{name:'abc', mvr_code:2}
{name:'abc', mvr_code:2}

после запуска кода я получаю это:

{name:'abc', mvr_code:1, reaction:'r1'}
{name:'abc', mvr_code:1}
{name:'abc', mvr_code:2, reaction:'r2'}
{name:'abc', mvr_code:2}

Как мне заставить это работать для всех случаев, а не только для первого?

1 Ответ

1 голос
/ 04 марта 2020

Вы можете добавить multi: true к запросу. Согласно документации , параметр multi является логическим значением и, если установлено значение true, обновляет несколько документов, которые соответствуют критериям запроса. Если установлено значение false, обновляется один документ. Значением по умолчанию является false.

Запрос может быть переделан как:

db.test1.update({name : "abc", mvr_code : 1},{$set: { "reacttion":1}}, multi:true)

Дайте мне знать, если это поможет !!

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