Эффективно ли findAndModify блокирует документ для предотвращения конфликтов обновления? - PullRequest
2 голосов
/ 01 января 2012

Какой тип блокировки предлагает findAndModify ()?Является ли блокировка записи только для чтения / записи?Предотвращает ли это одновременное обновление одной и той же записи?

Ответы [ 2 ]

5 голосов
/ 01 января 2012

MongoDB имеет глобальную (для каждого экземпляра) блокировку записи, которая сериализует все обновления для всех данных на сервере (хотя каждый из серверов в изолированном кластере будет иметь свои собственные независимые блокировки). Это означает, что в любой данный момент времени только одно обновление происходит в любом документе, и, следовательно, только одно обновление для любого данного документа.

findAndModify ничего не делает в этом отношении иначе, чем обычный update - он просто возвращает документ вам.

2 голосов
/ 01 января 2012

Согласно документации MongoDB для MongoDB: findAndModify () для менее MongoDB: атомарные операции должно быть.

...