【问题标题】:How to join MongoDB collections in Python?如何在 Python 中加入 MongoDB 集合?
【发布时间】:2012-04-04 00:09:51
【问题描述】:

如何在 Python 中加入(从 SQL 的 INNER JOIN 意义上说)两个 MongoDB 集合?我是否需要使用本机 map/reduce javascript 代码或在 PyMongo 中执行此操作?如何用更少的代码解决这个问题?

【问题讨论】:

    标签: python mongodb mapreduce pymongo


    【解决方案1】:

    Mongo 以不同于传统关系数据库的方式存储数据,并且不支持在 SQL 数据库中可能使用的表连接。 “数据库参考”文档中有关于此的注释。 http://www.mongodb.org/display/DOCS/Database+References

    如果可能,最好将所有数据存储在一个集合中。如果这不可能,则必须对所有数据库执行单独的查询,并以编程方式合并数据。

    根据文档,可以直接或使用 db 引用链接单独集合中的文档。仍然必须对每个集合执行单独的查询。

    之前有人问过类似的问题。 (我在下面提供了一些链接。)希望这些回复能让您进一步了解数据在 MongoDB 中的存储方式,以及如何重组文档和/或查询,以便用最少的资源检索所需的数据对数据库的请求数。

    祝你好运!

    MongoDB and "joins"

    How do I perform the SQL Join equivalent in MongoDB?

    How to join query in mongodb?

    “关于连接的初学者问题” http://groups.google.com/group/mongodb-user/browse_thread/thread/edfcf8bd270274f9/

    【讨论】:

      【解决方案2】:

      您可以使用MongoJoin

      pip install mongojoin

      创建一个 MongoCollection 对象:

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

      【讨论】:

        【解决方案3】:

        MongoDB 版本 4 现在似乎支持 JOIN operation 和运算符 $lookup,您必须调用 inside an aggregation pipeline。 然而,这似乎没有在 pymongo 驱动程序中实现,因为它从 python 脚本中没有产生任何最终意图。

        【讨论】:

          猜你喜欢
          • 2018-06-23
          • 2017-08-10
          • 2021-11-04
          • 2020-09-03
          • 1970-01-01
          • 2017-03-28
          • 2022-01-01
          • 2016-10-22
          • 1970-01-01
          相关资源
          最近更新 更多