我有一个包含多个文档的集合,每个文档都有一个不唯一的“eID”字段。我想获得所有不同的“eID”的计数。

例如:如果有5个文档的'eID'= ObjectID(123)和2个文档的'eID'= ObjectID(321),我想输出以下内容:

{
   ObjectID(123): 5,
   ObjectID(321): 2
}

我不知道是否可以在同一查询中完成此操作,但是在知道最常见的eID是什么之后,我想使用ObjectID来获取引用的文档

Mongoose 版本3.8.8

最佳答案

$ status是集合的特定字段,我需要计算元素的不同数量。

          var agg = [
            {$group: {
              _id: "$status",
              total: {$sum: 1}
            }}
          ];

          model.Site.aggregate(agg, function(err, logs){
            if (err) { return res.json(err); }

            return res.json(logs);
          });

//output
[
  {
    "_id": "plan",
    "total": 3
  },
  {
    "_id": "complete",
    "total": 4
  },
  {
    "_id": "hault",
    "total": 2
  },
  {
    "_id": "incomplete",
    "total": 4
  }
]

10-05 22:58
查看更多