如何计算每个国家使用猫鼬的重复次数?

时间:2019-07-05 21:23:30

标签: javascript node.js mongodb mongoose

我的以下代码能够计算不同城市的数量。

获得不同的国家/地区

    IpDetails.find().distinct('city', function(error, cities) {
    console.log(`unique cities is:, ${cities}`)
})

结果

unique cities is: Toronto, Waterloo

我的问题是,如何使用猫鼬获得多伦多和滑铁卢出现在数据库中的次数?有人可以建议吗?

1 个答案:

答案 0 :(得分:1)

您应该能够将$aggregate$group$sum一起使用。实际上,您可以按照city的值对每个对象进行分组,并为每个对象增加计数:

IpDetails.aggregate([
  { $group: { _id: "$city", count: { $sum: 1 } } }],
  function(error, groups) {
    groups.forEach(function(group) {
      console.log(`City ${group._id} appeared ${group.count} times`);
    });
  }
);

希望有帮助!