你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
聚合管道中的 $sort 阶段用于按指定的字段对管道中的文档排序。 此阶段可帮助你对数据进行排序,例如按金额或按日期来排列销售额。
语法
$sort 阶段的语法如下:
{
$sort: { <field1>: <sort order>, <field2>: <sort order>, ... }
}
参数
DESCRIPTION | |
---|---|
field |
排序依据的字段 |
sort order |
应该用来对字段进行排序的顺序。 1 表示升序,-1 表示降序。 |
例子
示例 1:采用降序按总销售额排序
按总销售额采用降序对销售类别排序:
db.collection.aggregate([
{
$unwind: "$store.sales.salesByCategory"
},
{
$sort: { "store.sales.salesByCategory.totalSales": -1 }
}
])
示例输出
[
{
"_id": "7954bd5c-9ac2-4c10-bb7a-2b79bd0963c5",
"store": {
"name": "Downtown Store",
"sales": {
"salesByCategory": [
{
"category": "Electronics",
"totalSales": 15000
},
{
"category": "Clothing",
"totalSales": 12000
},
{
"category": "Home Goods",
"totalSales": 10000
}
]
}
}
},
{
"_id": "7954bd5c-9ac2-4c10-bb7a-2b79bd0963c6",
"store": {
"name": "Uptown Store",
"sales": {
"salesByCategory": [
{
"category": "Electronics",
"totalSales": 20000
},
{
"category": "Clothing",
"totalSales": 18000
},
{
"category": "Home Goods",
"totalSales": 15000
}
]
}
}
}
]
示例 2:按活动开始日期采用升序排序
按开始日期采用升序对促销活动排序:
db.collection.aggregate([
{
$unwind: "$store.promotionEvents"
},
{
$sort: { "store.promotionEvents.promotionalDates.startDate": 1 }
}
])
示例输出
[
{
"_id": "7954bd5c-9ac2-4c10-bb7a-2b79bd0963c5",
"store": {
"name": "Downtown Store",
"promotionEvents": [
{
"eventName": "Summer Sale",
"promotionalDates": {
"startDate": ISODate("2024-06-01T00:00:00Z"),
"endDate": ISODate("2024-06-30T23:59:59Z")
}
},
{
"eventName": "Black Friday",
"promotionalDates": {
"startDate": ISODate("2024-11-25T00:00:00Z"),
"endDate": ISODate("2024-11-25T23:59:59Z")
}
},
{
"eventName": "Holiday Deals",
"promotionalDates": {
"startDate": ISODate("2024-12-01T00:00:00Z"),
"endDate": ISODate("2024-12-31T23:59:59Z")
}
}
]
}
},
{
"_id": "7954bd5c-9ac2-4c10-bb7a-2b79bd0963c6",
"store": {
"name": "Uptown Store",
"promotionEvents": [
{
"eventName": "Back to School",
"promotionalDates": {
"startDate": ISODate("2024-08-01T00:00:00Z"),
"endDate": ISODate("2024-08-31T23:59:59Z")
}
},
{
"eventName": "Winter Sale",
"promotionalDates": {
"startDate": ISODate("2024-12-01T00:00:00Z"),
"endDate": ISODate("2024-12-31T23:59:59Z")
}
}
]
}
}
]
相关内容
- 查看从 MongoDB 迁移到 Azure Cosmos DB for MongoDB (vCore) 的选项
- 通过创建帐户开始。