我已经存储了来自同一集合的2个聚合查询,并希望基于它们共有的字段进行正确的联接。
查询1返回每个行政区所有餐厅的计数
查询2根据预先选择的美食返回每个行政区的餐馆计数。
这个想法是将查询1的count字段连接到查询2,以显示在那里的自治市镇。
查询显示为列表,但是它们的结构类似于带有键值格式的字典。我尝试将两个查询像列表或字典一样加入,但无济于事。
pipeline1 = [{"$group" : {"_id": "$borough", "count" : {"$sum":1}}}]
RestsByBorough = list(db.restaurants.aggregate(pipeline1))
pipeline2 = [{"$match":{"cuisine":"Nuts/Confectionary"}},
{"$group":{"_id":"$borough", "sum":{"$sum":1}}}]
BoroughByCuisine = list(db.restaurants.aggregate(pipeline2))
RestsByBorough给予
{'_id': 'Queens', 'count': 5656}
{'_id': 'Bronx', 'count': 2338}
{'_id': 'Brooklyn', 'count': 6086}
{'_id': 'Manhattan', 'count': 10259}
{'_id': 'Staten Island', 'count': 969}
{'_id': 'Missing', 'count': 51}
BoroughByCuisine提供
{'_id': 'Brooklyn', 'sum': 1}
{'_id': 'Manhattan', 'sum': 4}
{'_id': 'Queens', 'sum': 1}
我需要将它们聚在一起,例如:
{'_id': 'Brooklyn', 'sum': 1, 'count': 6086}
{'_id': 'Manhattan', 'sum': 4, 'count': 10259}
{'_id': 'Queens', 'sum': 1, 'count': 5656}