2014-11-10 2 views
7

Предположим, что существует структура документа, как показано ниже:
{_id:"session-01", status:"free"}
Действительно ли findAndModify блокирует документ для предотвращения конфликтов чтения?

И есть 2 параллельные операции, которые выполняют findAndModify операции ниже: db.collection.findAndModify({query:{status:"free"}, update:{status:"occupied"}, new:true})

То, что я хочу достичь только одна операция может получить " бесплатно "и выполнить блокировку, поэтому другая операция должна быть нулевой. Это то, что делает findAndModify?

ответ

6

Согласно официальным документам, MongoDB предоставляет изолированное обновление и возврат.
Это официальная ссылка для mongoDB: Why findAndModify is Atomic.
Вот великолепно иллюстрирует пример того, как findAndModify работает в MongoDB: How findAndModify works

Примечание - Обычно я не люблю размещения ссылок, но я не хочу, чтобы дискредитировать владельцев контента.

+1

Объяснение второй ссылки делает меня более уверенным. Спасибо за ответ: D –

Смежные вопросы