您的位置:首页 > 数据库 > Mongodb

MongoDB小技巧-用ObjectID查询某一时间范围内的数据

2017-11-22 00:00 453 查看
ObjectID是由精确到秒的时间戳再加上机器标识等信息组成的,并且建有索引,因此ObjectID本身就可以用于按时间范围查询数据,而不用专门另建时间戳字段和索引。

下面用javascript代码片段说明如何使用ObjectID查询某一时间范围内的数据:

[javascript] view plain copy

function timeToObjId( time ) {

var t = new Date(time);

t = t.getTime()/1000; // 转换成秒数

return t.toString(16)+'0000000000000000'; // 转换成16进制的字符串,再加补齐16个0

}

var objIdTimeFrom = timeToObjId( '2015-08-01 10:42:01' );

var objIdTimeTo = timeToObjId( '2015-08-01 10:42:59' );

// 查询MongoDB数据库

db.table1.find({

'_id': {

'$gt': ObjectId( objIdTimeFrom ),

'$lt': ObjectId( objIdTimeto )

}

}).sort({

'_id': 1

});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: