MongoDB时间段查询: 快速实现任务(mongodb时间段查询)

MongoDB时间段查询是非常有用的在数据库查询时实现任务。MongoDB中具有许多函式可用于查询时间段,其中一些最常用的功能有$gte(起始时间),$lt(截止时间)和$lte(等于截止时间),可以用下面的代码实现。

collection.find({
date:{
$gte:ISODate("2016-05-06T12:11:00Z"),
$lt:ISODate("2016-10-07T15:00:00Z")
}
})

这里,我们使用ISO-8601(一种多种语言所采用的格式)格式将日期格式化为字符串。此外,MongoDB $(options)也可以实现同样的服务。例如:

Date.prototype.addHours = function (h) {
this.setTime(this.getTime() + (h*60*60*1000));
return this;
};

let startDate = new Date();
let endDate = new Date();
startDate.addHours(-7);

collection.find({
date: {
$gte: startDate,
$lt: endDate
}
});

日期范围查询语句需要存储日期字段的document。我们可以使用mongoose 这个对象模型库在一个Node.js应用程序中存储日期字段。下面是模型代码:

var schema = new mongoose.Schema({
name : { type: String},
created_at : {type: Date, default: Date.now}
});

而要进行搜索,只需在mongoose查询中添加这个查询语句即可:

Model.find({
created_at: {
$gte: startDate,
$lt: endDate
}
));

总之,MongoDB查询精确的时间段和日期的范围查询是十分有效的,我们可以基于上面的代码迅速完成任务,从而提供精确的查询结果。


数据运维技术 » MongoDB时间段查询: 快速实现任务(mongodb时间段查询)