mongo从提供的数据数组中计数行

博格丹·杜比克

我有这样的收藏:

{ 
   "_id" : ObjectId("4d663451d1e7242c4b68e000"), 
  "topic" : "abc", 
  "subLevel" : {
     "id" : 1
  }
}
{ 
    "_id" : ObjectId("4d6634514cb5cb2c4b69e000"), 
    "topic" : "bce", 
    "subLevel" : {
        "id" : 1
     }
}

{ 
    "_id" : ObjectId("4d6634514cb5cb2c4b70e000"), 
    "topic" : "bec", 
    "subLevel" : {
        "id" : 2
     }
}
{ 
    "_id" : ObjectId("4d6634514cb5cb2c4b70e000"), 
    "topic" : "vvv", 
    "subLevel" : {
        "id" : 3
     }
}

并且我需要计算提供的subLevel.id列表中存在多少个文档,例如,如果我提供1和2,它应该告诉我,对于1我们有2个文档,对于2我们只有1个文档,只是忽略了subLevel.id为3,因为它不在ID列表中。

我试图做到这一点

db.getCollection('products').aggregate( [
   { $project: 
       {  "has_sublevel" : {$in: [ "subLevel.id", [1 , 2 ]]} }
   },
   { $group: { _id : "$subLevel.id", count: { $sum: 1 } } }
] )

但是结果是

{
   _id : null,
   count: 4
}

我该怎么办,谢谢!

如果将其转换为我更熟悉的SQL,查询应如下所示:

select subLevelId, count(id) FROM products where subLevelId in (1,2) group by subLevelId
JF

如果我理解正确,那么您是如此亲密,请检查以下查询:

  • 首次使用$match时仅获取subLevel.id1或2的文档
  • 然后,就像您所做的那样,$group通过id和求和得到总数:
db.collection.aggregate([
  {
    "$match": { "subLevel.id": { "$in": [ 1, 2 ] } }
  },
  {
    "$group": { "_id": "$subLevel.id", "count": { "$sum": 1 } }
  }
])

这里的例子

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Swift中计数行

来自分类Dev

Java,在Azure数据库表中计数行

来自分类Dev

Ruby,在数组中计数

来自分类Dev

从数组中给出的统计数据列表中计算一个统计数据的单独奖励值

来自分类Dev

在Lua中计数元素进入数组的频率

来自分类Dev

从PHP中的数组中计数元素

来自分类Dev

数组对象值未在js中计数

来自分类Dev

在Lua中计数元素进入数组的频率

来自分类Dev

从PHP中的数组中计数元素

来自分类Dev

在Php中的MuptiDimensional数组中计数值

来自分类Dev

从PHP中的数组中计数项目

来自分类Dev

使用C#在datagridview中计数行

来自分类Dev

获取数组中计数为偶数或计数大于2的元素

来自分类Dev

每日计数和每周计数mongo数据

来自分类Dev

在pandas数据框的数据透视表中计数

来自分类Dev

在查询生成器中计数JSON数组

来自分类Dev

从数组中的集合中计数数字文档

来自分类Dev

在python中的2D数组中计数并查找模式

来自分类Dev

获取数组中计数最高的前三个反应

来自分类Dev

如何在二维数组中计数

来自分类Dev

MongoDB:从值为数组的字段中计数值

来自分类Dev

numpy:在元素满足条件的2D数组中计数

来自分类Dev

Excel,在数组上的公式文本中计数

来自分类Dev

如何在循环数组中计数或获取汇总值?

来自分类Dev

mongo聚合组,内部组/数组计数

来自分类Dev

Mongo - 获取数组中每个值的计数

来自分类Dev

如何在mongo中计算数组元素

来自分类Dev

从数组中计数相同的类别,并使用其计数和类别名称存储在新数组中

来自分类Dev

从两个表中计数和选择数据