Mongodb 计算数组中对象的唯一值

Mongodb 计算数组中对象的唯一值,mongodb,pymongo,Mongodb,Pymongo,我正在尝试统计集合中出现的字段uuid。数据集是一组集合的集合。我想看看哪张牌打得最多。这是集合中的示例文档: _id:60aa430832f934a5874f7e3a code:"JMP" commander:Array mainBoard:Array name:"Rogues (1)" releaseDate:"2020-07-17" sideBoard:Array type:"Jumpstart" uuid位

我正在尝试统计集合中出现的字段
uuid
。数据集是一组集合的集合。我想看看哪张牌打得最多。这是集合中的示例文档:

_id:60aa430832f934a5874f7e3a
code:"JMP"
commander:Array
mainBoard:Array
name:"Rogues (1)"
releaseDate:"2020-07-17"
sideBoard:Array
type:"Jumpstart"
uuid位于
主板
阵列中的对象中。这看起来像这样:

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)
上面的聚合返回:
{u id':None,'count':22559}


我做错了什么?

uuid”字段在“mainBoard”对象数组中。因此,您在
$group
阶段做错了,只需使用
{$group:{“\u id”:“$mainBoard.uuid”…
我已将其调整为
{$group:{“\u id”:“$mainBoard.uuid”…
。我仍然从聚合中获得相同的回报…您可能遗漏了一些其他内容,在更改查询看起来很好之后,请参见工作情况哦,天哪,我的聚合中一直有一个拼写错误…谢谢!