Собранные коллекции звучат великолепно, но это ограничивает операцию удаления.В ограниченную коллекцию можно вставлять только новые элементы, а старые элементы будут автоматически удаляться при достижении определенного размера.
Однако, если вы хотите вставить и удалить любой документ в любом порядке и ограничить максимальное количество документов вколлекция mongoDB не предлагает прямого решения.
Когда я сталкиваюсь с этой проблемой, я использую дополнительную переменную count в другой коллекции.В этой коллекции есть правило проверки, позволяющее избежать изменения переменных числа.Переменная count всегда должна быть неотрицательным целым числом.
"count": {"$ gte": 0}
Алгоритм был прост.Уменьшить счет на единицу.Если это удалось, вставьте документ.Если произойдет сбой, это означает, что свободного места не осталось.
И наоборот для удаления.
Также вы можете использовать транзакции для предотвращения сбоев (счет уменьшается, но сервис сбой перед операцией вставки).