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
});
下面用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
});
相关文章推荐
- MongoDB小技巧-用ObjectID查询某一时间范围内的数据
- Spring data mongodb ObjectId ,根据id日期条件查询,省略@CreatedDate注解
- MongoDB 日期查询与mongodump 按日期范围导出数据
- mongodb指南(十三) - developer zone - 数据类型和约定(二)之Object ID
- play framework框架下,连接到MongoDB时的特殊操作(与或查询,模糊查询,范围查询,数据排序等)
- python操作mongodb根据_id查询数据的实现方法
- mongodb通过子串查询ObjectId对应的record
- java查询mongodb中的objectid示例(查询mongodb中的_id属性)
- mongodb通过ObjectId 来更新数据
- Mongodb中用Objectid操作数据
- python操作mongodb根据_id查询数据的实现方法
- java 查询 mongodb 中的objectid
- java查询mongodb中的objectid示例
- sql server查询NodeId字段中距离某一时间最近的所有数据
- Mongodb 查询指定时间范围的数据
- node.js+mongoose通过mongodb的id来查询数据id类型不对问题的解决
- 关于mongoDB查询类型为ObjectId的SQL
- Mongodb 查询指定时间范围的数据
- MongoDB 日期查询与mongodump 按日期范围导出数据
- java查询mongodb中的objectid示例