MongoDB是目前流行的非关系型数据库之一,在数据聚合操作中,使用其提供的聚合函数可以轻松实现各种聚合操作。本文将详细讲解 MongoDB 聚合函数 count、distinct、group 的使用方法,包括语法和示例。
count函数
count函数用于统计集合中满足条件的文档数量。语法如下:
db.collection.count(query, options)
其中,query是过滤条件,options是统计选项。
示例1:统计集合中所有文档的数量
db.collection.count()
示例2:统计集合中 age 大于等于 18 的文档数量
db.collection.count({age: {$gte: 18}})
distinct函数
distinct函数用于查找集合中某个字段的不同值。语法如下:
db.collection.distinct(field, query, options)
其中,field是要查找的字段,query是过滤条件,options是查询选项。
示例1:查找集合中所有文档的不同城市
db.collection.distinct("city")
示例2:查找集合中 age 大于等于 18 的文档的不同城市
db.collection.distinct("city", {age: {$gte: 18}})
group函数
group函数用于按某个字段分组,并进行聚合操作,如求和、求平均值等。语法如下:
db.collection.group(keys, condition, initial, reduce, finalize)
其中,keys是分组键,condition是过滤条件,initial是初始值,reduce是聚合函数,finalize是最终函数。
示例1:按城市分组,统计每个城市中人口数量大于等于 1000000 的数量
db.collection.group(
{
key: {city: true},
cond: {population: {$gte: 1000000}},
reduce: function(curr, result) {result.count++},
initial: {count: 0}
}
)
示例2:按城市分组,统计每个城市的平均年龄和人口数量
db.collection.group(
{
key: {city: true},
reduce: function(curr, result) {
result.age += curr.age;
result.population += curr.population;
result.count++;
},
initial: {age: 0, population: 0, count: 0},
finalize: function(result) {
result.avg_age = result.age / result.count;
result.avg_population = result.population / result.count;
}
}
)
以上就是 MongoDB 中 count、distinct、group 聚合函数的使用方法和示例说明。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Mongodb聚合函数count、distinct、group如何实现数据聚合操作 - Python技术站