在多个集合Mongodb(pymongo)中汇总查询

时间:2019-08-04 12:29:54

标签: python mongodb mongodb-query aggregation-framework pymongo

我想在多个集合中应用聚合查询。 我有以下集合,每个集合partner中都有一个字段,我想从partner包含john的所有集合中过滤掉,这是我的集合-

公司

{
    'com_id': 121,
    'name': 'abc',
    'pin': 45009,
    'partner': ['john', 'mack', 'michel'],
    'type': 'company'
}

冒险

{
    'ven_id': 342,
    'type': 'real_estate',
    'partner': ['john', 'duke', 'michel']
}

属性

{
    'prop_id': 213,
    'address': 'xyz',
    'partner': ['john', 'gore', 'tiger'],   
    'type': 'property'
}

以及期望的预期结果-

[
{'type': 'company', 'id': 121, 'name': 'john'},
{'type': 'real_estate', 'id': 342, 'name': 'john'},
{'type': 'property', 'id': 213, 'name': 'john'}
]

这是我尝试过的方法,但对我没有用。

mydb.company.aggregate([
        {'$match': {'partner': {'$in': ['john']}}},
        {'$lookup': {'from': "ventures", 'localField': "partner", 'foreignField': "partner", 'as': "final_data"}},
        {'$lookup': {'from': "property", 'localField': "partner", 'foreignField': "partner", 'as': "final_data"}},
])

0 个答案:

没有答案