用于在mongodb集合上执行联接的python库
mongojoin的Python项目详细描述
mongojoin:在mongodb中执行类似sql的连接
这是一种尝试,向经常从不同集合获取相关数据的mongodb用户提供类似sql的连接,并提供一个库来组合来自多个集合的数据
mongodb是一个非规范化的数据库,不提供对集合执行“join”操作的方法。
github链接:https://github.com/nimeshkverma/mongo_joins
请随意提出问题并作出贡献。
安装:
要安装软件包,请键入以下内容:
pip install mongojoin
如何使用
1.在python脚本/shell中导入以下内容
>>> from mongojoin.mongojoin import MongoJoin, MongoCollection
2.创建MongoCollection对象(两个要连接的集合各一个)
>>> collection = MongoCollection("db_name","collection_name",["collection_select_key_1", "collection_select_key_2"], {filter_key : filter_value})
r_select_key1,r_select_key2:键,联接后要获取的值对
filter_key:filter_value:用于在执行联接之前聚合数据的筛选器
3.创建一个mongojoin对象来执行连接。
>>> join_object = MongoJoin(collection_left, collection_right, ["join_key_2","join_key_2"])
join_key_1:要对其执行join的键 join_key_2:要对其执行join的键
4.所有连接函数都返回一个defaultdict对象
执行内部联接
>>> result = join_object.inner()
执行左外连接
>>> result = join_object.left_outer()
执行右外连接
>>> result = join_object.right_outer()
执行完全外部联接
>>> result = join_object.full_outer()
示例:
对两个集合执行联接:supplier和order on supplier\u id,结果具有关键字:supplier\u id、名称和数量以及条件supplier\u id==1001
>>> from mongojoin.mongojoin import MongoJoin >>> from mongojoin.mongojoin import>>> supplier = MongoCollection("test", "supplier", ["supplier_id", "name"], {"supplier_id": 1001}) >>> order = MongoCollection("test", "order", ["supplier_id", "qty"], {"supplier_id": 1001})>>> aggregator = MongoJoin(supplier, order, ["supplier_id"])>>> inner_join_result = aggregator.inner() >>> left_outer_join_result = aggregator.left_outer() >>> right_outer_join_result = aggregator.right_outer() >>> full_outer_join_result = aggregator.full_outer()
这相当于以下SQL查询:
select supplier.supplier_id,supplier.name,order.supplier_id,order.qty from supplier join order on supplier.supplier_id=order.supplier_id=1001 and order.supplier_id=1001
如果您有任何疑问,请告诉我们-
nimesh.aug11@gmail.comutsav.tiwary2011@gmail.com