我正在尝试计算集合中 uuid
字段的出现次数。该数据集是 Magic the Gathering 套牌的集合。我想看看哪张牌打得最多。这是集合中的示例文档:
_id:60aa430832f934a5874f7e3a
code:"JMP"
commander:Array
mainBoard:Array
name:"Rogues (1)"
releaseDate:"2020-07-17"
sideBoard:Array
type:"Jumpstart"
uuid 位于 mainBoard
数组中的一个对象中。这看起来像这样:
mainBoard:Array[
{0:Object
artist:"Daarken"
...
uuid:"d99be31c-b176-530a-bb17-88056d2e06b1"}]
这是我尝试过的聚合,但没有实现我的目标:
pipeline = [
{'$project': {"mainBoard": 1}},
{'$unwind': "$mainBoard"},
{'$group': {'_id': '$uuid', "count": {'$sum': 1}}},
{'$sort': {'_id': 1}},
]
# execute pipeline
for doc in database.deck_lists.aggregate(pipeline):
pprint(doc)
上面的聚合返回:{'_id': None, 'count': 22559}
我做错了什么?