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查询精确的时间段和日期的范围查询是十分有效的,我们可以基于上面的代码迅速完成任务,从而提供精确的查询结果。