首页 > 解决方案 > MongoDB 是否支持对聚合查询的结果进行聚合查询?

问题描述

我有一个聚合查询,它返回属性的记录数。

db.collection.aggregate([
    {
        $group : {
            _id : "$propertyId",
            count: { $sum: 1 }
        }
    },
    {
        $sort : { count: 1 }
    }
],
{
    allowDiskUse:true
});

这给了我一个看起来像这样的结果。

{ "_id" : 1234, "count" : 1 }
{ "_id" : 1235, "count" : 1 }
{ "_id" : 1236, "count" : 2 }
{ "_id" : 1237, "count" : 3 }
{ "_id" : 1238, "count" : 3 }

现在我想数一数。所以上面的结果会变成这个。

{ "_id" : 1, "count" : 2 }
{ "_id" : 2, "count" : 1 }
{ "_id" : 3, "count" : 2 }

这可能与查询有关,还是我需要编写一些代码来完成这项工作?

标签: mongodbmongodb-queryaggregation

解决方案


我更新了查询以获得另一个计算计数的“步骤”。这就是它的外观。

db.collection.aggregate([
    {
        $group : {
            _id : "$propertyId",
            count: { $sum: 1 }
        }
    },
    {
        $group : {
            _id : "$count",
            countOfCounts: { $sum: 1 }
        }
    },
    {
        $sort : { countOfCounts: 1 }
    }
],
{
    allowDiskUse:true
});

推荐阅读