javascript - Mongoose:如何使用两个字段对聚合响应进行排序
问题描述
我有这个猫鼬查询:
MinutesSpentStudying.aggregate([
{ $match: { connected_user_id: ObjectId(user_id) } },
{
$project: {
minutes_spent_studying: 1,
year: { $year: "$date" },
day: { $dayOfMonth: "$date" },
},
},
{
$group: {
_id: {
day: "$day",
year: "$year",
},
total_minutes: { $sum: "$minutes_spent_studying" },
},
},
{ $sort: { _id: 1 } },
]);
它返回此响应:
[
{
"_id": {
"day": 2,
"year": 2021
},
"total_minutes": 11
},
{
"_id": {
"day": 3,
"year": 2021
},
"total_minutes": 1
},
{
"_id": {
"day": 26,
"year": 2020
},
"total_minutes": 1
},
{
"_id": {
"day": 27,
"year": 2020
},
"total_minutes": 3
},
]
我希望它按年排序,然后按天排序,以便它返回 2020 年的结果,然后是 2021 年的结果。
知道如何配置以实现此结果吗?
解决方案
推荐阅读
- javascript - 如何在javascript中操作日期变量?
- django - 如何正确设计我喜欢的模型?
- entity-framework - 比较更改时,实体框架未获取原始实体
- asp.net - 如何在脚手架 MVC 视图中允许十进制数中的逗号?
- javascript - addeventlistener 不运行函数
- javascript - React - 将变量传递给 css 表
- html - #如何使用url
- amazon-web-services - 在 AWS Amplify 中,如何恢复同步失败的记录?
- flutter - 如何在颤动中实现响应式 UI/小部件的小部件/单元测试?
- mysql - MySql 选择总和并计算每列的百分比