Как сравнить объект в запросе на обновление mongodb

1

У нас есть коллекция MongoDB:

[
  {
    "field1": {
      "key1": true,
      "key2": false
    }
  },
  {
    "field1": {
      "key1": true,
      "key2": true
    }
  }
  ...
  ...
]

который нам нужно обновить с условием на field1 которое является объектом.

Мы использовали такой запрос:

document.update({
    { field1: { key1: false, key2: true } }
  }, {
    $set: required updates
  }, {
    multi: true
  })
  .then(() => {})
  .catch((err) => {});

однако, похоже, это не имеет эффекта.

Как мы это исправим?

  • 1
    использовать обозначение .Dot для полей внутри объекта ... А также какие required updates содержатся?
  • 0
    @AnthonyWinzlet обязательные обновления - это просто все поля и значения, которые нужно установить
Теги:
mongoose

2 ответа

1
Лучший ответ

Попробуйте этот код:

document.update(
    {
        $and: [{ "field1.key1": false }, { "field1.key2": true }]
    },
    {
        $set:  required updates  // It (required updates) should be an object
    },
    {
        multi: true
    })
    .then(() => { })
    .catch((err) => { });

Надеюсь, это даст вам идею!

1

Вы должны использовать .Dot обозначения для полей внутри объекта

document.update(
  { "field1.key1": false, "field1.key2": true },
  { "$set": required updates },
  { "multi": true }
)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню