【发布时间】:2016-12-22 20:19:42
【问题描述】:
这周我已经精疲力尽了!我无法修复一个应该用一些基础数学来解决的错误。
我的 mongodb 数据库中有一些“事件”对象,它们是使用日期字段创建的,在预保存挂钩中,我计算年份编号并将其放置到模型上。例如。
1 月 1 日 = 1
1 月 5 日 = 5
12 月 31 日 = 365
我的应用程序的用户可以搜索当前日期前 X 天的事件。我的查询类似于:
{
day_number: { $gte: start_day, $lte: end_day}
}
现在年底到了,有一个逻辑错误。
假设输入是 12 月 22 日到 1 月 2 日
我的查询正在进行:
{
day_number: { $gte: 356, $lte: 2}
}
这当然不会返回任何结果,因为没有数字大于或等于 356 且小于或等于 2。
有什么建议可以解决这个问题,不涉及破坏一个虽然破碎但简单的查询?
【问题讨论】:
-
可能是
day_number: { $gte: start_day, $lte: (end_day < start_day? 365 : 0) + 2}。
标签: javascript mongodb date math