MongoDB как откатить или уничтожить вновь созданную коллекцию в транзакции - PullRequest
1 голос
/ 17 марта 2020

Проблема, которую я пытаюсь решить, состоит в том, чтобы создать коллекцию foo, мне нужно добавить данные запроса пользователя в bar. (Если bar не существует, создайте bar, иначе вставьте данные в bar.) Затем я хочу передать идентификатор объекта bar в поле foo, чтобы я мог ссылаться на bar и создать foo.

Но если я сначала создаю bar успеха, то я пытаюсь создать foo, но это не удается, я хочу уничтожить только что созданный bar. Но, если bar существует раньше, то я хочу удалить только добавленные данные из bar.

Я пытался добавить эти операции в транзакцию, но MongoDB не позволяет манипулировать новой коллекцией внутри транзакция в соответствии с документацией :

Внутри транзакции можно указывать только операции чтения и записи (CRUD) для существующих коллекций. Например, многодокументная транзакция не может включать операцию вставки, которая привела бы к созданию новой коллекции.

Какой лучший подход к решению этой проблемы?

1 Ответ

1 голос
/ 20 апреля 2020

Да, я должен сначала создать пустые поправки foo и bar, и это решит мою проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...