Задать вопрос
@miniven

Как в mongodb обновить сразу несколько документов?

Можно ли обновить сразу несколько документов, причем разными значениями?
Например, я посылаю запрос:

{
	"5b7abaf46081420c3042867a": { "lastChosen": false },
	"5b7abafe6081420c3042867c": { "lastChosen": true }
}


И мне нужно, чтобы документы с этими id обновились в соответствии с указанными для них объектами. Как возможно это сделать? Пробовал циклом, но не понимаю, как будет правильно вернуть ответ, когда все запросы к БД закончатся.
  • Вопрос задан
  • 166 просмотров
Подписаться 1 Средний 2 комментария
Решения вопроса 1
@lega
1 способ, отправить ассинхронно все запросы с ключом w=0 (циклом) кроме последного, который отправить с ключом w=1 - в 99% он будет отработан последим и вернет статус завершения
2 воспользоваться bulkwrite
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Abcdefgk
Вообще-то, до появления ловкой библиотеки async просто создавали переменную var count = 0 и плюсовали её в конце каждого колбека обращения к базе, после чего - в каждом колбеке - стояло условие (предположим, что обращений - пять штук) "если count == 5, то res.end(...)"
Ответ отправлялся - когда все асинхронные работы завершены.
(за это объяснение старинного механизма "борьбы с асинхронностью" меня когда-то навечно зобанели на русском Стековерфлоу)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы