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”…
。我仍然从聚合中获得相同的回报…您可能遗漏了一些其他内容,在更改查询看起来很好之后,请参见工作情况哦,天哪,我的聚合中一直有一个拼写错误…谢谢!