Mongodb用不同的密钥计算所有值

时间:2018-03-22 01:29:55

标签: mongodb aggregation-framework

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

data structure

所以我的问题是如何计算0/0 0/1次发生的所有时间?我用谷歌搜索了一段时间,所有答案都是用同一个键得到的。但你可以看到我的样品内的样品不一样。所以任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

您可以在3.4中尝试以下聚合。

使用$objectToArray将对象转换为键值对的数组,然后按$unwind$group对值进行计数。

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