Я работаю с Java-драйвером Mongo, но просматривая документацию Mongo, он не выглядит специфичным для драйвера.
update(filter, update)
может обновлять несколько документов, но возвращает WriteResult, который предоставляет только флаги/счетчики.
findOneAndUpdate(filter, update)
возвращает фактический документ, который был изменен, но он может обновлять только один документ за раз.
Неужели нельзя сделать это за один звонок? В противном случае клиент должен будет вызвать find(filter)
, затем update(filter, update)
, затем find(...)
с новым фильтром, соответствующим идентификаторам, полученным при первоначальной находке (поскольку обновление потенциально может изменить значения документа, которые были в исходном фильтре).
Есть ли способ лучше?