Как получить данные из двух коллекций в одном запросе в Монго БД?

2

Скажем, у меня есть две коллекции A и B. В моей программе на С# я пытаюсь получить данные от них. В настоящее время я сначала получаю данные из коллекции A и сохраняю документы в контейнере. А затем получить данные из коллекции B. Но теоретически, данные могут быть изменены после получения от A и до получения от B. Так что я получаю неправильные результаты. Есть ли безопасный способ?

  • 0
    Вы используете linq?
  • 1
    Это невозможно
Теги:
mongodb-.net-driver

2 ответа

4
Лучший ответ

Mongodb не поддерживает транзакции. Из-за того, что mongodb был разработан для масштабирования (это означает ошпаривание, репликацию), а распределенные транзакции могут быть очень дорогими и замедлять работу базы данных в целом. Таким образом, вы не можете блокировать сборку A для записи, когда вы ее/обновляете, загружая из B.

В mongodb есть какие-то транзакции - это атомные обновления в одном документе. Таким образом, вы можете обновить часть документа без его загрузки.

0

В то время как Mongo явно не поддерживает блокировки таблиц, таких как SQL-системы, вы можете взглянуть на функцию fsync. Если я правильно читаю документы, вы должны использовать его как хак, чтобы временно предотвратить запись данных.

http://www.mongodb.org/display/DOCS/fsync+Command

Ещё вопросы

Сообщество Overcoder
Наверх
Меню