Python $与组和计数一起展开
我所有的字段都是一个数组——其中许多字段只包含一个元素,但我无法正确地执行展开操作,我不明白为什么Python $与组和计数一起展开,python,mongodb,Python,Mongodb,我所有的字段都是一个数组——其中许多字段只包含一个元素,但我无法正确地执行展开操作,我不明白为什么 field = ['A'] 或字段=['A','B'] pipeline = [ {"$unwind": "$field"}, {"$group": {"_id": "$field", "count" : { "$sum" : 1 } } }, {"$sort": {"_id" : 1} }, ] 然而,在我的结
field = ['A']
或字段=['A','B']
pipeline = [ {"$unwind": "$field"},
{"$group": {"_id": "$field", "count" : { "$sum" : 1 } } },
{"$sort": {"_id" : 1} },
]
然而,在我的结果中,我看到一个记录为[{{u-id:['a',B'],“count:5}]
我想要[{{u-id:['a'],“count:5},{{u-id:['B'],“count:5}]
这段代码之前已经在不同的数据集上进行过测试,并且似乎工作得很好。除非您的数据组织方式不同,否则您的示例应该可以工作。以下示例数据:
db.unwind.save({field:['A','B']} )
以及mongoshell命令:
db.unwind.aggregate([{
"$unwind": "$field"
}, {
"$group": {
"_id": "$field",
"count": {
"$sum": 1
}
}
}, {
"$sort": {
"_id": 1
}
}, ])
给出:
{ "_id" : "A", "count" : 1 }
{ "_id" : "B", "count" : 1 }
如果您的数据实际上是字段:[['A','B']
,则需要添加一个额外的$unwind
参数:
db.unwind.aggregate([{
"$unwind": "$field"
}, {
"$group": {
"_id": "$field",
"count": {
"$sum": 1
}
}
}, {
"$sort": {
"_id": 1
}
}, {
"$unwind": "$_id"
}])
这不是真的,我猜你有
字段:[[A',B']]
刚刚发现了这一点,很难找到那条记录!是否有任何方法可以展平或展开此字段?所有文档都是二维字段数组?不,我只有一行看起来像是[['A',B']]