Как присоединиться к коллекциям MongoDB в Python? - PullRequest
7 голосов
/ 19 марта 2012

Как объединить (в смысле INNER JOIN из SQL) две коллекции MongoDB в Python?Нужно ли мне использовать нативную карту / уменьшить код JavaScript или сделать это в PyMongo?Как решить эту проблему с меньшим количеством кода?

Ответы [ 2 ]

11 голосов
/ 20 марта 2012

Mongo хранит данные не так, как в традиционной реляционной базе данных, и не поддерживает объединения таблиц, как это может быть использовано в базе данных SQL.Об этом есть примечание в документации «Ссылки на базу данных».http://www.mongodb.org/display/DOCS/Database+References

Если возможно, желательно хранить все данные в одной коллекции.Если это невозможно, необходимо выполнить отдельные запросы ко всем базам данных, а данные объединить программно.

Согласно документации, можно связывать документы в отдельных коллекциях, либо напрямую, либо с помощью ссылок на БД.Отдельные запросы все еще должны быть выполнены для каждой коллекции.

Подобные вопросы уже задавались ранее.(Я включил несколько ссылок ниже.) Надеемся, что ответы дадут вам дополнительную информацию о том, как данные хранятся в MongoDB, и как вы можете реструктурировать свои документы и / или запросы таким образом, чтобы вы могли получать нужные данные с наименьшимколичество запросов к базе данных.

Удачи!

MongoDB и "объединения"

Как выполнить эквивалент SQL-соединения в MongoDB?

Как присоединиться к запросу в mongodb?

"Вопрос новичка относительно объединений" http://groups.google.com/group/mongodb-user/browse_thread/thread/edfcf8bd270274f9/

0 голосов
/ 14 июня 2018

Вы можете использовать MongoJoin .

pip install mongojoin

Создание объекта MongoCollection:

collection = MongoCollection("db_name", "collection_name", ["collection_select_key_1", "collection_select_key_2"], {filter_key : filter_value})

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