我有一个event
集合,其中包含一些属性,特别是start
和end
,这些属性是日期。
我如何知道查询过去,现在或未来?
有人有想法吗?我已经被困在这个问题上一天了......
由于
答案 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});