聚合管道
MongoDB中的聚合操作使用聚合管道来处理文档集合。聚合管道是一个由多个聚合操作组成的有序列表,每个聚合操作都是一个处理步骤。聚合管道中的每个聚合操作都将产生一个新的文档集合,并将其传递给下一个聚合操作。最后一个聚合操作将生成最终结果。
$match
$match
操作用于筛选文档集合中满足指定条件的文档。该操作接受一个JSON对象,表示筛选条件。
以下是使用$match
操作筛选文档的示例:
db.collection('users').aggregate([
{ $match: { age: { $gte: 18 } } }
], function(err, result) {
if (err) throw err;
console.log(result);
db.close();
});
上面的代码将查询一个名为users
的集合中年龄大于等于18
的所有文档,并输出它们。
$group
$group
操作用于将文档集合按照指定条件进行分组,并对每个分组进行聚合操作。该操作接受一个JSON对象,表示分组条件和聚合操作。
以下是使用$group
操作分组并计算平均年龄的示例:
db.collection('users').aggregate([
{ $group: { _id: '$gender', avgAge: { $avg: '$age' } } }
], function(err, result) {
if (err) throw err;
console.log(result);
db.close();
});
上面的代码将查询一个名为users
的集合,按照性别进行分组,并计算每个分组中年龄的平均值。在完成聚合操作后,将会输出结果。
$sort
$sort
操作用于对文档集合中的文档进行排序。该操作接受一个JSON对象,表示排序条件。
以下是使用$sort
操作对文档进行排序的示例:
db.collection('users').aggregate([
{ $sort: { age: -1 } }
], function(err, result) {
if (err) throw err;
console.log(result);
db.close();
});
上面的代码将查询一个名为users
的集合,按照年龄进行降序排序。在完成聚合操作后,将会输出结果。
$limit
$limit
操作用于限制文档集合中返回的文档数量。该操作接受一个数字,表示限制的文档数量。
以下是使用$limit
操作限制返回文档数量的示例:
db.collection('users').aggregate([
{ $sort: { age: -1 } },
{ $limit: 10 }
], function(err, result) {
if (err) throw err;
console.log(result);
db.close();
});
上面的代码将查询一个名为users
的集合,按照年龄进行降序排序,并限制返回的文档数量为10个。在完成聚合操作后,将会输出结果。