Mongodb使用不同的键计算所有值

Mongodb使用不同的键计算所有值,mongodb,aggregation-framework,Mongodb,Aggregation Framework,在monogdb中是否有任何方法可以使用不同的键对所有值进行分组。以下是我的数据结构: 所以我的问题是如何计算所有0/0/1的发生时间?我在谷歌上搜索了一段时间,得到的答案都是一样的。但是你可以看到我的钥匙里面的样品是不一样的。因此,任何帮助都将不胜感激。您可以尝试下面3.4中的聚合 用于将对象转换为键值对数组,后跟和值以计数出现次数 db.col.aggregate([ {"$addFields":{"samples":{"$objectToArray":"$samples"}}},

在monogdb中是否有任何方法可以使用不同的键对所有值进行分组。以下是我的数据结构:


所以我的问题是如何计算所有0/0/1的发生时间?我在谷歌上搜索了一段时间,得到的答案都是一样的。但是你可以看到我的钥匙里面的样品是不一样的。因此,任何帮助都将不胜感激。

您可以尝试下面3.4中的聚合

用于将对象转换为键值对数组,后跟和值以计数出现次数

db.col.aggregate([
  {"$addFields":{"samples":{"$objectToArray":"$samples"}}},
  {"$unwind":"$samples"},
  {"$group":{"_id":"$samples.v","count":{"$sum":1}}}
])

谢谢,但这里我不能使用objectToArray函数,是否有其他方法可以做到这一点?Np。恐怕服务器端没有办法。你必须在客户端完成。您能否更改结构以将值存储为数组?相似样本:[{k:b56,v:0/1},…]