Как удалить документы из нескольких коллекций на основе идентификатора в MongoDB? - PullRequest
0 голосов
/ 01 мая 2018

У меня есть две коллекции; схема следующая-

posts
 - ID
 - author
 - title
 - content

user_posts
 - ID
 - post_id
 - user_id

В SQL я мог бы удалить запись из двух таблиц одновременно, например

DELETE posts, user_posts
FROM posts
INNER JOIN user_posts
ON posts.ID = user_posts.post_id
WHERE posts.ID = 102

Как мне добиться вышеупомянутого аналогичного кода для Mongodb? Я знаю, как удалить запись из одной коллекции. Одним из решений является выполнение операции удаления один за другим, используя обратные вызовы для гарантии успешной операции, но я хочу удалить документы из обеих коллекций за один раз .

Я ссылался на это решение, использующее метеор , но я новичок в Монго, поэтому я не мог его понять. Принимая во внимание, что это решение предназначено для всех коллекций , представленных в текущей базе данных, но у меня есть только эти две коллекции, связанные с этой операцией, другие не связаны. Любая помощь будет оценена.

1 Ответ

0 голосов
/ 01 мая 2018

В настоящее время это просто невозможно. Чтобы получить доступ к двум коллекциям, вам нужно использовать структуру агрегации, которая, однако, не может выполнять какие-либо манипуляции с данными на этом этапе. Кроме того, требование «за один раз» потребует поддержки транзакций, которые доступны только в бета-версии прямо сейчас - так что опять неудача.

Итог: ваш предложенный подход с обратным вызовом - это путь.

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