这是我的架构
{
"from": {type: Date, required: true},
"to": {type: Date, required: true},
"slotname": {type: String, required: true},
"createdAt": {type: Date, default: Date.now},
"modifiedAt": {type: Date, default: Date.now},
"isDeleted": {type: Boolean, default: false}
}
使用此架构,我创建了总共10条记录。对于这10个记录,插槽名称为"slot1","slot2"..."slot10"
。
from
和to
时间分别为9-11, 11-1, 2-4, 4-6, 6-9, 9-11, 11-1, 2-4, 4-6, 6-9
。
现在我需要将它们与current time
进行比较。
假设当前时间为11
,则应将包含from
和to
时间的文件返回为2-4, 4-6, 6-9 and 9-11
。
我怎样才能做到这一点?
答案 0 :(得分:1)
创建任何插槽时,不应将日期保留为和。那些不是特定的一天,对吧!
您可以输入插槽的小时值作为整数。让我们来看第一个插槽。在那里你可以从2和4插入。
然后查询就像
var tStamp = new Date();
var hr = tStamp.getHour();
query = {
from: {
$lte: hr
},
to: {
$lte: hr
}
};
yourCollection.find(query).toArray(callbackFn);
请参阅$lte-mongodb。