做一个范围来知道它是当前的,过去的还是未来的事件猫鼬

Make a range to know if it's current, is past or is futur event mongoose

我有一个 event 集合,其中包含一些属性,特别是 startend,它们是日期。

我怎么知道查询是过去的、现在的还是将来的?

有人有想法吗?我被这个问题困扰了 1 天...

谢谢

您是要查找未来、过去或现在的事件吗?或者您是否试图找出您正在查询的事件是过去的、现在的还是未来的?

如果是第一个,在查询中使用 $gt、$gte、$lt 或 $lte 运算符就相当简单了。

var now = new Date()
// future events:
db.events.find({start: {$gt: now}});

// current events:
db.events.find({start: {$lte: now}, end: {gte: new Date()}});

// past events
db.events.find({end: {lt: now}});

MongoDB 允许与日期进行比较。

如果是后者,您将需要找到您的事件,然后在您的代码中解析日期。

此外,请确保为您的 end/start 日期设置索引,以确保快速查找:

db.events.ensureIndex({start: 1});
db.events.ensureIndex({end: 1});