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']]