Способ обновления нескольких документов с разными значениями
У меня есть следующие документы:
[{
"_id":1,
"name":"john",
"position":1
},
{"_id":2,
"name":"bob",
"position":2
},
{"_id":3,
"name":"tom",
"position":3
}]
В пользовательском интерфейсе пользователь может изменить положение элементов (например, перемещение Боба в первую позицию, john получает позицию 2, том - позиция 3).
Есть ли способ обновить все позиции во всех документах одновременно?
Ответы
Ответ 1
Вы не можете обновить сразу два документа с помощью запроса MongoDB. Вам всегда придется делать это в двух запросах. Вы можете, конечно, установить значение поля для одного и того же значения или увеличивать с тем же номером, но вы не можете делать два отдельных обновления в MongoDB с тем же запросом.
Ответ 2
Вы можете использовать db.collection.bulkWrite()
для массового выполнения нескольких операций. Он был доступен с 3.2
.
Можно выполнять операции не по порядку, чтобы увеличить производительность.