gpt4 book ai didi

javascript - Mongoose 自定义日期排序

转载 作者:行者123 更新时间:2023-12-02 21:14:02 26 4
gpt4 key购买 nike

如何在 Mongoose 中使用自定义排序检索数据?有一个作业开始日期需要按月份和年份排序,但目前此脚本仅排序从 12 月到 1 月。

router.get('/', (req, res) => {
Job.find()
.sort({ from: -1 })
.then(jobs => res.json(jobs))
.catch(err => res.status(404).json(err));
});

问题出在排序上; from 的值类似于 12.201806.201903.202011.2009 等.

我想首先从年份(点后面)对这些结果进行排序,然后再从月份进行排序。我当前无法更改数据的设置方式以及它在模型架构中存储为 String 的方式。

最佳答案

您必须使用聚合框架首先将字符串转换为有效日期

然后进行排序并最终删除创建的字段。

这是查询:

db.collection.aggregate([
{
$addFields: {
date: {
$dateFromParts: {
year: {
$convert: {
input: {
$arrayElemAt: [
{
$split: [
"$from",
"."
]
},
1
]
},
to: "int"
}
},
month: {
$convert: {
input: {
$arrayElemAt: [
{
$split: [
"$from",
"."
]
},
0
]
},
to: "int"
}
},

}
}
}
},
{
$sort: {
date: -1
}
},
{
$project: {
date: 0
}
}
])

你可以测试一下here

关于javascript - Mongoose 自定义日期排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61017591/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com