Проверьте и обновите, если поле не существует в коллекции - PullRequest
0 голосов
/ 02 февраля 2019

У меня есть несколько документов в коллекции orders, где is_show уже установлено со значением true/false для новых документов.

Теперь то, что я хочу, это для прошлых документов, это должновведите ключ
is_show со значением false для определенного типа заказа.Для этого я написал запрос, как показано ниже:

db.getCollection("orders").update({"order_type":1}, {$set: {"is_show": false}}, false, true)

Но кое-как он добавляет is_show false для новых и старых документов.

, так как я могу изменитьзапрос для достижения этой функциональности?

1 Ответ

0 голосов
/ 02 февраля 2019

Вы можете использовать оператор запроса $exists, чтобы проверить, содержит ли документ это поле или нет

db.getCollection("orders").update(
  { "order_type": 1, "is_show": { "$exists": false }},
  { "$set": { "is_show": false }},
  { "multi": true }
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...