FindAndUpdate vs Обновление в mongodb

Я использую Update и FindAndModify, но теперь я прочитал, что Update и FindAndModify являются атомарными ( http://docs.mongodb.org/manual/tutorial/model-data-for-atomic-operations/),

Так что, если оба могут выполнять одну и ту же работу, запрашивая элемент и обновляя его, то в чем разница?

Я нашел пару ответов в Stackru, но ни один из них не упоминает, что Update также атомарен: в чем разница между findAndModify и update в MongoDB?

1 ответ

Решение

Разница в том, что FindAndModify() возвращает документ, либо версию до, либо после обновления вместе с обновлением, в одной элементарной операции. Обновление является атомарным, но не возвращает документ, поэтому, если вы затем запросите его, возможно, что он будет изменен другим процессом в промежуточный период.

При изменении одного документа оба метода findAndModify() и update() автоматически обновляют документ.

Обратите внимание, что это для одного документа - обновление может изменить несколько документов, найти и изменить нельзя.

Кроме того, findandmodify() может удалить документ, update() не может.

http://docs.mongodb.org/manual/reference/method/db.collection.findAndModify/

Другие вопросы по тегам