MongoDB的聚合操作(一)

2023-05-09 10:17:00 浏览数 (1)

聚合管道

MongoDB中的聚合操作使用聚合管道来处理文档集合。聚合管道是一个由多个聚合操作组成的有序列表,每个聚合操作都是一个处理步骤。聚合管道中的每个聚合操作都将产生一个新的文档集合,并将其传递给下一个聚合操作。最后一个聚合操作将生成最终结果。

$match

$match操作用于筛选文档集合中满足指定条件的文档。该操作接受一个JSON对象,表示筛选条件。

以下是使用$match操作筛选文档的示例:

代码语言:javascript复制
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操作分组并计算平均年龄的示例:

代码语言:javascript复制
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操作对文档进行排序的示例:

代码语言:javascript复制
db.collection('users').aggregate([
  { $sort: { age: -1 } }
], function(err, result) {
  if (err) throw err;
  console.log(result);
  db.close();
});

上面的代码将查询一个名为users的集合,按照年龄进行降序排序。在完成聚合操作后,将会输出结果。

$limit

$limit操作用于限制文档集合中返回的文档数量。该操作接受一个数字,表示限制的文档数量。

以下是使用$limit操作限制返回文档数量的示例:

代码语言:javascript复制
db.collection('users').aggregate([
  { $sort: { age: -1 } },
  { $limit: 10 }
], function(err, result) {
  if (err) throw err;
  console.log(result);
  db.close();
});

上面的代码将查询一个名为users的集合,按照年龄进行降序排序,并限制返回的文档数量为10个。在完成聚合操作后,将会输出结果。

0 人点赞