mongodb Mongo数据库中的类别计数

ddrv8njm  于 2022-11-22  发布在  Go
关注(0)|答案(1)|浏览(165)

MongoDB集合中的数据为:

{ type : "bike", name : "honda" },
{ type : "car", name : "Audi } ,
{ type : "truck", name : "mercedes"},
{ type : "bike", name : "suzuki" },
{ type : "bike", name : "yamaha" },
{ type : "car", name : "tesla"}

我希望输出为:

{ bike : 3 },
{ car : 2 },
{ truck : 1}

我无法通过阅读文档来做到这一点。欢迎任何帮助。

qlvxas9a

qlvxas9a1#

  • $group,并获得重复项的总和,
  • $arrayToObject将k和v格式数组转换为对象
  • $replaceRoot将上述转换对象替换为根
db.collection.aggregate([
  {
    $group: {
      _id: "$type",
      count: { $sum: 1 }
    }
  },
  {
    $replaceRoot: {
      newRoot: {
        $arrayToObject: [
          [{ k: "$_id", v: "$count" }]
        ]
      }
    }
  }
]).toArray();

Playground

相关问题