То, как вы, кажется, делаете это, то есть с двумя отдельными Моделями, а не с поддокументами (трудно сказать, не видя Моделей), я думаю, у вас будет такое состояние гонки.if
не поможет.Чтобы избежать этой проблемы, вам нужно воспользоваться атомными модификаторами, и при использовании отдельных Моделей (каждая из которых является собственной коллекцией MongoDB), атомарные модификаторы недоступны .В мире SQL вы используете транзакцию для обеспечения согласованности.Точно так же в хранилище документов, таком как MongoDB, вы сделаете каждую задачу вложенным документом проекта, а затем просто .push()
новые задачи.Но, возможно, ваш вариант использования требует отдельных, не связанных между собой моделей.MongoDB отлично подходит для предоставления такой гибкости, но позволяет сохранять мышление на SQL, не будучи SQL, что может привести к проблемам при проектировании.
Более конкретно, однако, состояние гонки, о котором вы беспокоитесь, не имеет значенияне кажется большим делом.В конце концов, проект может быть удален и после сохранения задачи.У вас, очевидно, есть метод для очистки этого.Еще одна функция очистки не конец света - вероятно, хорошая вещь, чтобы иметь в вашем заднем кармане в любом случае.