gpt4 book ai didi

MongoDB查询。如何找到最接近当前日期的日期?

转载 作者:IT老高 更新时间:2023-10-28 13:26:27 25 4
gpt4 key购买 nike

我有这样的收藏:

{
"_id" : ObjectId("963fae9d93f4d930c98e269d"),
"myDate":ISODate("2017-02-05T05:00:00.000Z"),
"otherData":"blablabla"
},
{
"_id" : ObjectId("963fae9d93f4d930c98e269d"),
"myDate":ISODate("2017-02-05T14:00:00.000Z"),
"otherData":"blablabla"
},
{
"_id" : ObjectId("963fae9d93f4d930c98e269d"),
"myDate":ISODate("2017-03-05T02:00:00.000Z"),
"otherData":"blablabla"
},
{
"_id" : ObjectId("963fae9d93f4d930c98e269d"),
"myDate":ISODate("2017-03-05T19:00:00.000Z"),
"otherData":"blablabla"
}

给定当前日期(包括分钟和秒),我想找到最接近当前日期的记录(通过“myDate”字段)。

谢谢

最佳答案

您可以用当前日期减去集合中的日期,取差的绝对值以考虑将来的日期,然后使用排序和限制来获取最近的文档:

db.a.aggregate([
{
$project : {
myDate : 1,
otherData : 1,
difference : {
$abs : {
$subtract : [new Date(), "$myDate"]
}
}
}
},
{
$sort : {difference : 1}
},
{
$limit : 1
}
])

如果您想要输出文档中的 difference 字段,您可以使用额外的 $project。此外,您可以使用任何其他日期来代替当前日期并找到最接近该日期的日期。

关于MongoDB查询。如何找到最接近当前日期的日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41773782/

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