iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >mongodb中根据时间过滤进行查询的操作方法
  • 336
分享到

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

mongodb时间过滤查询mongodb时间查询mongodb时间过滤 2023-05-12 12:05:34 336人浏览 八月长安
摘要

目录mongoDB中简单的根据时间过滤进行查询补充:如何根据日期过滤/查找MonGoDB中的记录问题:如何根据日期过滤/查找MongoDB中的记录解答mongodb中简单的根据时间过滤进行查询 目的:查询当某天的文档信息

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时间过滤查询内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

您可能感兴趣的文档:

--结束END--

本文标题: mongodb中根据时间过滤进行查询的操作方法

本文链接: https://www.lsjlt.com/news/202085.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • oracle怎么显示表的字段
    如何显示 oracle 表的字段 在 Oracle 数据库中,可以使用 DESC 命令显示表的字段。 语法: DESC table_name 参数: table_name:要显示字段的表...
    99+
    2024-05-14
    oracle
  • oracle怎么看所有的表
    在 oracle 数据库中查看所有表的步骤:连接到数据库运行查询:select table_name from user_tables; 如何使用 Oracle 查看所有表 ...
    99+
    2024-05-14
    oracle
  • oracle怎么显示行数
    如何使用 oracle 显示行数 在 Oracle 数据库中,有两种主要方法可以显示行数: 1. 使用 COUNT 函数 SELECT COUNT(*) FROM table_n...
    99+
    2024-05-14
    oracle
  • oracle怎么显示百分比
    oracle中显示百分比的方法有:使用百分号“%”;使用to_char()函数;使用format()函数(oracle 18c及更高版本);创建自定义函数。 Oracle 显...
    99+
    2024-05-14
    oracle
  • oracle怎么删除列
    oracle 中删除列的方法有两种:1)使用 alter table table_name drop column column_name 语句;2)使用 drop colum...
    99+
    2024-05-14
    oracle
  • sql怎么查看表的索引
    通过查询系统表,可以获取表的索引信息,包括索引名称、是否唯一、索引类型、索引列和行数。常用系统表有:mysql 的 information_schema.statistics、postg...
    99+
    2024-05-14
    mysql oracle
  • sql怎么查看索引
    您可以使用 sql 通过以下方法查看索引:show indexes 语句:显示表中定义的索引列表及其信息。explain 语句:显示查询计划,其中包含用于执行查询的索引。informat...
    99+
    2024-05-14
  • sql怎么查看存储过程
    如何查看 sql 存储过程的源代码:使用 show create procedure 语句直接获取创建脚本。查询 information_schema.routines 表的 routi...
    99+
    2024-05-14
  • sql怎么查看视图表
    要查看视图表,可以使用以下步骤:使用 select 语句获取视图中的数据。使用 desc 语句查看视图的架构。使用 explain 语句分析视图的执行计划。使用 dbms 提供...
    99+
    2024-05-14
    oracle python
  • sql怎么查看创建的视图
    可以通过sql查询查看已创建的视图,具体步骤包括:连接到数据库并执行查询select * from information_schema.views;查询结果将显示视图的名称、...
    99+
    2024-05-14
    mysql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作