Подтвердить что ты не робот

Способ обновления нескольких документов с разными значениями

У меня есть следующие документы:

[{
  "_id":1,
  "name":"john",
  "position":1
},
 {"_id":2,
  "name":"bob",
  "position":2
},
 {"_id":3,
  "name":"tom",
  "position":3
}]

В пользовательском интерфейсе пользователь может изменить положение элементов (например, перемещение Боба в первую позицию, john получает позицию 2, том - позиция 3). Есть ли способ обновить все позиции во всех документах одновременно?

4b9b3361

Ответ 1

Вы не можете обновить сразу два документа с помощью запроса MongoDB. Вам всегда придется делать это в двух запросах. Вы можете, конечно, установить значение поля для одного и того же значения или увеличивать с тем же номером, но вы не можете делать два отдельных обновления в MongoDB с тем же запросом.

Ответ 2

Вы можете использовать db.collection.bulkWrite() для массового выполнения нескольких операций. Он был доступен с 3.2.

Можно выполнять операции не по порядку, чтобы увеличить производительность.