mongodb中根据时间过滤进行查询的操作方法

 更新时间:2023年05月12日 11:08:34   作者:我是大头鸟  
这篇文章主要介绍了mongodb中简单的根据时间过滤进行查询,文末补充介绍了如何根据日期过滤/查找MongoDB中的记录,结合实例给大家介绍的非常详细,需要的朋友可以参考下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

mongodb中简单的根据时间过滤进行查询

目的:查询当某天的文档信息

db.getCollection('test').find
({ "name" : { "$regex" : "王" }, 
     "is_history" : 0, 
     "adddate":{"$gte":ISODate("2018-01-02T00:00:00Z"),"$lte":ISODate("2018-01-03T00:00:00Z")} 
},
{
   name:1,adddate:1,sex:1,certcode:1,certnumber:1,istomysql:1
}
)

mongodb的语法,第一个大括号里面是:表示过滤条件

第二个大括号里面是 :控制显示的字段

里面有一个adddate这个过滤条件是如何按照时间来进行过滤查找$gte是大于等于 $lte是小于等于

补充:如何根据日期过滤/查找MongoDB中的记录

问题:如何根据日期过滤/查找MongoDB中的记录

我在 MongoDB 数据库中有一个集合,其中包含一些数据,并希望根据日期(忽略时间)过滤和查找数据。

样本数据

{
  "_id" : ObjectId("563a38173c2ab9248c02d89e"),
  "jobId" : "oAEKMcCIJRIAAAFQbrAR6NDd",
  "jobName" : "CheckSessions",
  "jobDesc" : "Checks and deletes expired session data",
  "jobType" : "Job",
  "startTime" : "2015-11-04 00:00:01",
  "endTime" : "2015-11-04 00:00:01",
  "domainName" : "root",
  "recurrencePeriod" : "60",
  "recurrencePeriodDesc" : "HOURS(1)"
}
{
  "_id" : ObjectId("563a38173c2ab9248c02d89f"),
  "jobId" : "C6wKMcCIJXoAAAFQm78R6NCm",
  "jobName" : "CheckSessions",
  "jobDesc" : "Checks and deletes expired session data",
  "jobType" : "Job",
  "startTime" : "2015-11-03 23:00:00",
  "endTime" : "2015-11-03 23:00:01",
  "domainName" : "root",
  "recurrencePeriod" : "60",
  "recurrencePeriodDesc" : "HOURS(1)"
}

我使用以下命令来获取大于特定日期的数据,但它没有给我任何结果。 startTime 和 endTime 都是 EST 格式。不知道我错过了什么。请指导。

db.jobs.find({"startTime" : { $gt : new Date("2015-11-03")}});

解答

答:可以简单的通过字符串比较来查询。

首先,确保 startTime 列上的索引

db.test.ensureIndex({startTime:1})

以下命令在_id:ObjectId("563a38173c2ab9248c02d89f")示例中找到您的第二个对象

db.test.find({
    startTime: {
        $gte: '2015-11-03 00:00:00',
        $lt:  '2015-11-04 00:00:00'
    }
}).pretty()

通过在我们的查询上运行 explain(),我们可以看到索引实际上正在使用中:

db.test.find({startTime:{$gte:'2015-11-03 00:00:00', $lt:'2015-11-04 00:00:00'}}).explain()
{
    "cursor" : "BtreeCursor startTime_1",
    "isMultiKey" : false,
    "n" : 1,
    "nscannedObjects" : 1,
    "nscanned" : 1,
    "nscannedObjectsAllPlans" : 1,
    "nscannedAllPlans" : 1,
    "scanAndOrder" : false,
    "indexOnly" : false,
    "nYields" : 0,
    "nChunkSkips" : 0,
    "millis" : 0,
    "indexBounds" : {
        "startTime" : [
            [
                "2015-11-03 00:00:00",
                "2015-11-04 00:00:00"
            ]
        ]
    },
    "server" : "Jaans-MBP.home:27017"
}

我的建议仍然是遵循最佳实践并以正确的日期格式存储您的日期字段,例如

"startTime" : ISODate("2016-05-02T00:00:02Z")

在 MongoDB shell 中,您只需通过

> db.test.insert({startTime:new Date()})
> db.test.find()
// results
{ "_id" : ObjectId("563a49d63b1f1b7df0ebc4f5"), "startTime" : ISODate("2015-11-04T18:09:26.613Z") }

到此这篇关于mongodb中简单的根据时间过滤进行查询的文章就介绍到这了,更多相关mongodb时间过滤查询内容请搜索程序员之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持程序员之家!

相关文章

  • MongoDB使用mongoexport和mongoimport命令,批量导出和导入JSON数据到同一张表的实例

    MongoDB使用mongoexport和mongoimport命令,批量导出和导入JSON数据到同一张表的实例

    今天小编就为大家分享一篇关于MongoDB使用mongoexport和mongoimport命令,批量导出和导入JSON数据到同一张表的实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • mongodb的写操作

    mongodb的写操作

    今天小编就为大家分享一篇关于mongodb的写操作,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • MongoDB 3.6版本中bind_ip设置详解

    MongoDB 3.6版本中bind_ip设置详解

    这篇文章主要给大家介绍了关于MongoDB 3.6版本中bind_ip设置的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12
  • MongoDB mongoexport工具的使用简介

    MongoDB mongoexport工具的使用简介

    这篇文章主要介绍了MongoDB mongoexport工具的使用简介,帮助大家更好的理解和学习使用MongoDB数据库,感兴趣的朋友可以了解下
    2021-03-03
  • MongoDB中的一些坑(最好不要用)

    MongoDB中的一些坑(最好不要用)

    这篇文章主要介绍了MongoDB中的一些坑(最好不要用),本文总结了MongoDB 数据库级锁、建索引导致数据库阻塞、不合理使用嵌入 embed document、不合理使用 Array 字段等4个坑,需要的朋友可以参考下
    2015-03-03
  • express使用Mongoose连接MongoDB操作示例【附源码下载】

    express使用Mongoose连接MongoDB操作示例【附源码下载】

    这篇文章主要介绍了express使用Mongoose连接MongoDB操作,结合实例形式分析了express使用Mongoose连接MongoDB的具体步骤与相关实现技巧,并附带源码供读者下载参考,需要的朋友可以参考下
    2019-07-07
  • MongoDB实现查询、分页和排序操作以及游标的使用

    MongoDB实现查询、分页和排序操作以及游标的使用

    本文详细讲解了MongoDB实现查询、分页和排序操作以及游标的使用方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • mongodb 3.4下远程连接认证失败的解决方法

    mongodb 3.4下远程连接认证失败的解决方法

    这篇文章主要给大家介绍了在mongodb 3.4下远程连接认证失败的解决方法,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编一起来学习学习吧。
    2017-06-06
  • MongoDB学习笔记—Linux下搭建MongoDB环境

    MongoDB学习笔记—Linux下搭建MongoDB环境

    本篇文章主要介绍了Linux下搭建MongoDB环境,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • mongoDB4.2.8备份恢复与导出导入(推荐)

    mongoDB4.2.8备份恢复与导出导入(推荐)

    这篇文章主要介绍了mongoDB4.2.8备份恢复与导出导入的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12

最新评论

?


http://www.vxiaotou.com