javascript - 如何使用猫鼬计算每个国家/地区的重复次数?
问题描述
我的以下代码能够计算不同城市的数量。
获取不同的国家
IpDetails.find().distinct('city', function(error, cities) {
console.log(`unique cities is:, ${cities}`)
})
结果
unique cities is: Toronto, Waterloo
我的问题是,如何使用猫鼬获得多伦多和滑铁卢出现在我的数据库中的次数?有人可以建议吗?
解决方案
您应该能够使用带有$group和$sum的$aggregate来做到这一点。实际上,您可以按每个对象的值对每个对象进行分组并增加每个对象的计数: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`);
});
}
);
希望这会有所帮助!
推荐阅读
- asp.net-core - 有没有办法在 asp.net core 中以全局方式添加 ApiControllerAttribute?
- error-handling - 如何找出 tcl 命令会产生哪些错误?
- ruby-on-rails - FinePrint::SignaturesController 401 with new Devise account
- node.js - 在 axios 和 Vue 中使用 cookie
- bootstrap-4 - Problem Bootstrap 4 btn-group-toggle conflict with textbox inside
- linux - 无法将 2 个 Linux 变量连接成 1 个
- mysql - MYSQL 选择 DISTINCT 聊天对话
- r - 如何在数据表中每列的每一行应用一个函数,并以其他行作为输入?
- html - 如何使用 HTML 和 CSS 在页面底部制作 2 个固定页脚?
- ubuntu - 下载 mongodb compass 并使用终端安装