Возможна ли блокировка уровня документа в mongodb 3.4?
В моей коллекции миллионы документов. У меня есть сценарий, в котором я хочу удалить некоторые документы (на основе некоторых критериев идентификатора) в коллекции, и пока эти документы удаляются, они не должны быть доступны другим пользователям.
Документы, которые я не хочу удалять, должны быть доступны другим пользователям.
Итак, я хочу заблокировать несколько документов (на основе некоторых критериев идентификатора), которые я хочу удалить.
Или есть другой способ сделать это?
Начиная с MongoDB 3.2, механизм хранения WiredTiger является механизмом хранения по умолчанию.
WiredTiger использует управление параллелизмом на уровне документа для операций записи. В результате несколько клиентов могут одновременно изменять разные документы коллекции.
db.collection.remove () поддерживает многодокументные транзакции.
поэтому я думаю, что вам должно быть достаточно использования записи по умолчанию.
Дополнительную ссылку можно найти на Документация MongoDB
То же самое происходит по умолчанию. Вы можете перепроверить через POC.
Не могли бы вы поделиться со мной POC, который вы сделали. Мне нужно проверить.
Предположим, я хочу удалить 10 миллионов документов (из моих 30 миллионов документов в коллекции), поэтому, пока эти документы удаляются, я не хочу, чтобы к этим 10 миллионам документов обращался другой поток, в то время как остальные 20 миллионов должны быть доступны