MongoDB 聚合排序
要使用 MongoDB 进行聚合操作,需要对聚合管道阶段有足够的了解。本教程将通过一个示例来探索 $sort
阶段以执行 MongoDB 聚合排序。
MongoDB 聚合排序
让我们有一个场景来练习代码示例。我们有一个名为 student
的集合,其中包含基本信息。
你还可以使用以下查询与我们在同一页面上。
示例代码:
> db.createCollection('student');
> db.student.insertMany([
{"student_code": "ma001", "name": "Mehvish Ashiq", "postcode": 2000},
{"student_code": "tc002", "name": "Thomas Christopher", "postcode": 2001},
{"student_code": "km003", "name": "Krishna Mehta", "postcode": 2000},
{"student_code": "ar004", "name": "Aftab Raza", "postcode": 2000},
{"student_code": "za005", "name": "Zeenat Ashraf", "postcode": 2002},
{"student_code": "ka006", "name": "Kanwal Ali", "postcode": 2002}
]);
> db.student.find().pretty();
输出:
{
"_id" : ObjectId("629afe5a0a3b0e96fe92e97b"),
"student_code" : "ma001",
"name" : "Mehvish Ashiq",
"postcode" : 2000
}
{
"_id" : ObjectId("629afe5a0a3b0e96fe92e97c"),
"student_code" : "tc002",
"name" : "Thomas Christopher",
"postcode" : 2001
}
{
"_id" : ObjectId("629afe5a0a3b0e96fe92e97d"),
"student_code" : "km003",
"name" : "Krishna Mehta",
"postcode" : 2000
}
{
"_id" : ObjectId("629afe5a0a3b0e96fe92e97e"),
"student_code" : "ar004",
"name" : "Aftab Raza",
"postcode" : 2000
}
{
"_id" : ObjectId("629afe5a0a3b0e96fe92e97f"),
"student_code" : "za005",
"name" : "Zeenat Ashraf",
"postcode" : 2002
}
{
"_id" : ObjectId("629afe5a0a3b0e96fe92e980"),
"student_code" : "ka006",
"name" : "Kanwal Ali",
"postcode" : 2002
}
接下来,我们要确定容纳最多学生但以排序形式存在的 postcode
。为此,请检查以下示例代码。
示例代码:
> db.student.aggregate([
{ $group: { _id: '$postcode', students: { $sum: 1 } } },
{ $sort: {_id: 1} }
]);
输出:
{ "_id" : 2000, "students" : 3 }
{ "_id" : 2001, "students" : 1 }
{ "_id" : 2002, "students" : 2 }
在这里,我们使用 aggregate()
函数计算指定集合或视图中数据的聚合值。在 aggregate()
方法中,我们根据 postcode
字段对文档进行分组。
此外,我们将 postcode
返回为 _id
,学生将每个 postcode
计为 students
。在这里,我们使用 $sum
来获取每个 postcode
的学生人数。
$sum
通过忽略非数值来计算并返回数值的总和。
最后,我们使用 $sort
阶段根据项目需要以升序或降序对它们进行排序。1
用于升序,而 -1
用于降序。
相关文章
比较 MongoDB 中的字段
发布时间:2023/04/21 浏览次数:51 分类:MongoDB
-
在本文中,我们将了解如何比较 MongoDB 中的两个字段。 此外,我们将看到一个相关的示例和解释,以使主题更容易理解。
清除或删除 MongoDB 中的集合
发布时间:2023/04/21 浏览次数:147 分类:MongoDB
-
本篇文章将告诉大家如何删除 MongoDB 数据库中的集合以及删除 MongoDB 中的集合的不同方法。
向 MongoDB 集合中的每个文档添加新字段
发布时间:2023/04/21 浏览次数:107 分类:MongoDB
-
您将在这篇文章中了解 $set 和 $setOnInsert 操作。 此外,利用这两个运算符,快速描述了向 MongoDB 中的集合添加字段的挑战。
MongoDB 截断集合
发布时间:2023/04/21 浏览次数:178 分类:MongoDB
-
可以根据需要选择两个选项之一来截断下面的集合。 在今天的文章中,我们将学习如何在 MongoDB 中截断集合。
删除 MongoDB 中的重复项
发布时间:2023/04/21 浏览次数:151 分类:MongoDB
-
在本文中,我们将了解如何删除 MongoDB 中的重复条目,并且我们还将看到一个带有适当解释的示例,以使主题更容易理解。
使用 NodeJS 检查 MongoDB 中是否存在集合
发布时间:2023/04/21 浏览次数:194 分类:MongoDB
-
在本文中,我们将检查 MongoDB 数据库中是否存在一个集合,并且我们还将查看与主题相关的示例,以使主题更容易理解。 为此,我们将使用 Node.js。
MongoDB 中的唯一索引
发布时间:2023/04/21 浏览次数:144 分类:MongoDB
-
在这篇教学文章中,您将了解唯一索引、它们是什么以及如何在 MongoDB 中使索引唯一。 此外,还简要详细地解释了使用户的电子邮件在 MongoDB 中唯一。
在 MongoDB 中创建索引
发布时间:2023/04/21 浏览次数:104 分类:MongoDB
-
索引有助于有效解决查询。 如果没有索引,MongoDB 必须遍历集合中的每个文档才能找到与查询匹配的文档。因此,在今天的文章中,我们将学习如何在 MongoDB 中创建索引。
MongoDB 中的稀疏索引
发布时间:2023/04/21 浏览次数:142 分类:MongoDB
-
在本文中,我们将讨论 MongoDB 中的稀疏索引。 此外,我们将提供一个相关示例并进行解释,以使该主题更容易理解。