Как удалить документы из нескольких коллекций на основе идентификатора в MongoDB?

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

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? Я знаю, как удалить запись из единой коллекции. Одно из решений - выполнить операцию удаления одну за другой, используя обратные вызовы для уверенности в успешной операции, но я хочу удалить документы из обеих коллекций вовремя.

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

Использование JavaScript и MongoDB
Использование JavaScript и MongoDB
Сегодня я собираюсь вкратце рассказать о прототипах в JavaScript, а также представить и объяснить вам работу с базой данных MongoDB.
0
0
1 326
1

Ответы 1

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

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

Другие вопросы по теме