【发布时间】:2016-02-11 05:38:10
【问题描述】:
我有具有 2 个参数的事件对象: 'at' 表示他们何时开始, '到期'当他们结束时
这是数组的结构,非常简单:
{
"name" : "war machine",
"due" : ISODate("2015-11-09T15:30:00.000Z"),
"at" : ISODate("2015-11-09T11:30:00.000Z"),
}
如果可能的话,我想要一个查询:
1) 返回“at”时间低于 Date.now 的事件。 这个很简单:
this.model('Ev').find(
{at:{$lt:Date.now()}
}).exec();
2) 返回比现在低dueDate + 12 小时的那些。 这意味着如果现在到期的事件,它仍然会在接下来的 12 小时内为我返回这个对象。
例如,如果我只执行第一个查询而不是使用 javascript:
var dueTime = 43,200,000; // 12 hours in millseconds
eventsReturned.forEach(function(e){
if ( Date.now() - event.due.getTime() < dueTime ) {
//This event should return
}
});
我有我想要的结果,我如何在不涉及 javascript 的查询中这样做?
【问题讨论】:
标签: mongodb performance mongoose database