gpt4 book ai didi

javascript - 比较三个日期以获得最新的 MongoDB

转载 作者:行者123 更新时间:2023-11-30 14:20:12 27 4
gpt4 key购买 nike

在我的 Mongo 集合中,我需要比较三个日期,并找到最近的一个。我想知道是否有一种速记方式或 native MongoDB 方式来执行此操作?

在 vanilla JS 中比较两个日期时,我可以这样:

let compareDates = (date1, date2) => {
if (date1>date2) return ("Date1 > Date2");
else if (date1<date2) return ("Date2 > Date1");
else return ("Date1 = Date2");
}

console.log(compare_dates(new Date('11/14/2018 00:00'), new Date('11/14/2018 00:00')));
console.log(compare_dates(new Date('11/14/2018 00:01'), new Date('11/14/2018 00:00')));
console.log(compare_dates(new Date('11/14/2018 00:00'), new Date('11/14/2018 00:01')));

...但是如果有三个日期,这会变得很长。有没有更短的方法来比较三个日期并返回最近的日期?

让我们假设一个像这样的简化模型:

{
_id: '123',
date1: {
type: Date,
},
date2: {
type: Date,
},
date3: {
type: Date,
}
}

最佳答案

假设您的模型如下所示:

{
date1: ISODate("1990-01-01T00:00:00Z"),
date2: ISODate("1980-01-01T00:00:00Z"),
date3: ISODate("1970-01-01T00:00:00Z")
}

您可以简单地使用 $max获取最近的日期:

db.collection.aggregate([
{
$project: {
recentDate: { $max: [ "$date1", "$date2", "$date3" ] }
}
}
])

关于javascript - 比较三个日期以获得最新的 MongoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52893041/

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