如何将当前时间与mongodb中的现有日期字段进行比较?

时间:2016-06-15 06:25:42

标签: node.js mongodb express mongodb-query

这是我的架构

{
    "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"

fromto时间分别为9-11, 11-1, 2-4, 4-6, 6-9, 9-11, 11-1, 2-4, 4-6, 6-9

现在我需要将它们与current time进行比较。

假设当前时间为11,则应将包含fromto时间的文件返回为2-4, 4-6, 6-9 and 9-11

我怎样才能做到这一点?

1 个答案:

答案 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