то в коллекции counters (от mongoose-sequence) происходит увеличение счетчика словно транзакция была успешно добавлена
Можно ли как-то избежать увеличение каунтера при отклоненной транзакции?
(node js + mongo)
судя по гиту https://github.com/ramiel/mongoose-sequence транзакций не поддерживаются, плюс оно уже заброшено и не стоит ее использовать. В любом случае вопрос, зачем вам автоинкременты и уж тем более зачем вам честные без пропусков?
В моей игре seq помогает упростить разработку и отслеживание ходов игроков. При использовании корректно увеличивающихся seq номеров, все идет по порядку, что придает уверенности в правильной работе приложения. Когда видишь, что игра имеет номер 100, это гарантирует, что в базе данных тоже есть игра с номером 100 и игр точно 100, – это избавляет от необходимости дополнительных запросов для подсчета игр и упрощает интерфейс для вывода номеров игр. Иногда seq также является удобным параметром для поиска, особенно там, где ограничения по символам делают _id менее удобным выбором.
В данном кейсе, так понимаю, из-за устаревшего mongoose-sequence, и желания "железобетонно" проставлять инкременты – это обновлять вручную через findOneAndUpdate внутри withTransaction с другими запросами?
да, вручную самостоятельно вести сиквенсы. Лучше конечно избавиться от них
А что в них плохого?
в них нет реальной потребности, по сути выдуманная сущность, которая осталась наследием тянущимся от sql баз
Обсуждают сегодня