2012-05-02 2 views
1

Одним из больших преимуществ РСУБД является SQL как очень декларативный и мощный язык запросов. Я знаю, что у MongoDB есть язык запросов, но он не охватывает объединения. Кто-нибудь пытался сделать расширенный язык запросов для MongoDB, чтоРасширенный язык запросов для MongoDB

a) Ручки соединяются через разные коллекции?

б) Ручки соединяются разумно, просматривая индексы в коллекциях и мощности индексов - то есть имитируя планирование запросов в SQL?

Похоже, что вы должны иметь возможность писать язык запросов более высокого уровня, который использует (b) для гибкого вывода комбинации кода Javascript и собственных запросов Mongo, которые выполняют (a).

+0

взгляните на это: http://stackoverflow.com/questions/4067197/mongodb-and-joins – c0deNinja

ответ

10

1) У MongoDB есть «планирование запросов». Это does it a little differently though. Он объединяет различные опции для параллельного выполнения одного и того же запроса и видит, какой из них выполняется первым, а затем запоминает его и использует его как скопированный план, а затем снова запускает тест для учета изменений данных и т. Д.

2) JOIN через коллекции заставит Mongo запускать хэширование и слияние между различными узлами, что замедлит другие клиенты. это было явно сознательное решение не разрешать такие запросы и выталкивать их в приложения. Вы либо архивируете свои документы, чтобы у вас было все, что вам нужно на месте (таким образом, support for nested documents), либо вы делаете свои соединения в клиенте.

Последнее, но не менее важное: была попытка создать единый язык запросов в базах данных NoSQL - UnQL - но с такой большой разницей между столбцами, ориентированными на документы, базами данных с ключом и графами, можно просто сделать так, чтобы обобщить процесс запроса данных.

И еще немного по теме: