制作一个范围,以了解它是当前的,过去的还是未来的事件猫鼬

时间:2015-02-09 02:48:25

标签: mongodb mongoose

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

我如何知道查询过去,现在或未来?

有人有想法吗?我已经被困在这个问题上一天了......

由于

1 个答案:

答案 0 :(得分:0)

您是否正在尝试查找未来,过去或现在的活动?或者您是否想知道您查询的事件是过去,现在还是未来?

如果是第一个,在查询中使用$ 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允许与日期进行比较。

如果是后者,则需要查找事件,然后解析代码中的日期。

此外,请确保在结束/开始日期设置索引,以确保快速查找:

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