计算数组中对象的唯一值

时间:2021-05-23 12:32:20

标签: mongodb pymongo

我正在尝试计算集合中 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}

我做错了什么?

0 个答案:

没有答案
相关问题