Mongodb 通过 DateTime 查询记录是否比通过 String 查询更快?

2024-01-08

例如,这是一条记录:

 { 
     "_id" : ObjectId("576bc7a48114a14b47920d60"), 
     "id" : "TEST0001", 
     "testTime" : ISODate("2016-06-23T11:28:06.529+0000")
 }

The testTime是 ISODate,Mongodb 是否通过以下方式查询记录testTime比这个更快吗? :

{ 
     "_id" : ObjectId("576bc7a48114a14b47920d60"), 
     "id" : "TEST0001", 
     "testTime" : "2016-06-23 11:28:06"
 }

是的,它确实。

差异是由于日期对象在日期时间对象中存储为数字而产生的。

为了理解这一点,我们将用这个例子来说明:

当有查询时dateTime提交并dateTime存储在数字对象中,这意味着我们可以对数字进行比较。 Mongo将比较大小为64位(8字节)的对象see here http://bsonspec.org/spec.html与同一个对象。

当比较字符串时,mongo 像这样加载字符串:2016-06-27T08:39:44.000这是 23 个字符*2 个字节(utf)=> 46 个字节在内存中进行比较,需要检查从最高到最低的所有字节。

现在,您知道为什么使用 dateObject 而不是 string 更快的答案了。

有什么意见欢迎留言!

链接在这里 https://docs.mongodb.com/manual/reference/bson-types/

比较/排序

  1. MinKey(内部类型)
  2. Null
  3. 数字(整型、长整型、双精度型)
  4. 符号、字符串
  5. Object
  6. Array
  7. BinData
  8. 对象ID
  9. Boolean
  10. Date
  11. 时间戳
  12. Regular
  13. 表达
  14. MaxKey(内部类型)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mongodb 通过 DateTime 查询记录是否比通过 String 查询更快? 的相关文章

  • MongoDB的ObjectId是如何生成的?

    他们是吗somewhat随机的 我的意思是 人们能够将它们分开吗 它们不是随机的 可以很容易地预测 BSON ObjectID 是一个 12 字节值 由 4 字节时间戳组成 自纪元以来的秒数 一个 3 字节 机器 ID 2 字节进程 ID
  • mongodb 更新所有文档,并将值增加 1 [重复]

    这个问题在这里已经有答案了 我在 mongoDB 中有几个文档 文档结构是这样的 a abc myid 2 我想用 1 更新所有文档的 myid 例如 第一个文档 myid 1 第二个文档 myid 2 依此类推 有询问吗 尝试这个查询 d
  • 错误:键 $conditionalHandlers 不得以 '$' mongodb 开头

    我对 mongodb 特别是 Node js 的 mongoose 包有疑问 我有以下架构 var Schema mongoose Schema var location new Schema nomville type String re
  • Mongo $group 和 $project

    我正在尝试获取关键字计数parentId categioryId and llcId 我的数据库是 id ObjectId 5673f5b1e4b0822f6f0a5b89 keyword electronic content manage
  • 环回关系不填充对象 ID 数组

    到目前为止我有 2 个模型 工作流程核心 工作流程步骤 工作流核心有一个steps属性 该属性是数组类型并且包含1 多个步骤 当呼叫接通时工作流程核心响应正文不会使用实际步骤对象填充步骤数组 工作流程核心 json name workflo
  • 如何修复 MongoClient is not a constructor 错误

    我刚刚学习 JavaScript 和 Nodejs 根据我在网上找到的一些代码 我编写了以下应用程序 当我尝试运行它时 我在第 9 行收到错误 其中显示 new MongoClient 错误提示 MongoClient 不是构造函数 您能解
  • 在java中将RFC3339 DateTime转换为Date [重复]

    这个问题在这里已经有答案了 如何转换RFC 3339 https www rfc editor org rfc rfc3339java 中的 com google api client util DateTime 到 DateTime 例如
  • Spring Data mongodb:添加 MongoDb 访问凭据

    我的 Spring 应用程序中有以下工作配置
  • 将 Mongodb 与 Android 应用程序连接

    我正在尝试构建 Android 应用程序来连接到 MongoDB 一直被这个问题困扰 MongoDB 是可访问的 但没有安全性 可以通过手机使用 Mono Explorer 添加数据 public void sendMessage View
  • 使用 python 字典更新 MongoEngine 文档?

    是否可以使用 python 字典更新 MongoEngine 文档 例如 class Pets EmbeddedDocument name StringField class Person Document name StringField
  • Mongoose 总是返回空数组? [复制]

    这个问题在这里已经有答案了 我是nodejs i的新手 我已经有一个名为aqi的数据库 集合名称为pln 我试图在网页上显示集合中的所有记录 但猫鼬总是返回空数组 我已经用其他数据库测试了它 但我可以从它们获取数据 但对于 pln mong
  • 如何同时使用 $gt 和 $lte 优化 MongoDB 查询?

    我有以下查询 有点像反向范围查找 db ip ranges find and start ip num lte 1204135028 end ip num gt 1204135028 当仅使用 lte 标识符运行时 查询会立即返回 但是当我
  • 访问 Amazon EC2 上的 Mongodb 时出现问题

    我还有一个问题要问你 我有安装了 mondodb 的 Amazon EC2 实例 它工作得很好 除了一件事 我无法从外部 我的电脑 访问 连接到 它 我认为安全组的问题 这是某种默认防火墙 有谁知道如何配置EC2实例来访问mongodb 提
  • 何时对 MongoDB 集合调用 EnsureIndex?

    我什么时候应该打电话ensureIndex 插入单条记录之前 插入单条记录之后 或者调用之前find 看来我的评论有点被误解了 所以我会澄清一下 当你调用它时并不重要只要在第一次调用 find 之前的某个时刻调用它即可 换句话说 什么时候创
  • MongoDb Spring 在嵌套对象中查找

    我正在使用 Spring Data Mongodb 和这样的文档 id ObjectId 565c5ed433a140520cdedd7f attributes 565c5ed433a140520cdedd73 333563851 list
  • Model.find() 在猫鼬中返回空[重复]

    这个问题在这里已经有答案了 我正在使用 mongoose 来列出 mongodb 数据库中集合中的所有数据 从请求中 http localhost 3000 listdoc model Organization 我正在执行以下代码 expo
  • MongoDB GeoJSON“无法从对象、格式错误的几何图形中提取地理密钥?”插入类型 Polygon 时

    我收到错误 无法从对象中提取地理密钥 几何图形格式错误 多边形已闭合 格式看起来不错 因为它已正确插入到 Mongo 中 我使用的是 Mongo 版本 2 6 3 在 Centos 6 5 x64 上运行 下面的多边形有什么问题 我非常仔细
  • MongoDB 中递归文档的结构和查询语法?

    我最近开始在工作项目中研究 MongoDB 我对 JSON 和 MongoDB 的查询结构相当陌生 所以我希望你们中的一位能够提供一些说明 我已将这个问题翻译成 Excel 术语 因为它很常见并且很好地代表了我的问题 如果我尝试将 Exce
  • Mongodb 的 Mongoose 与 Mongoose

    我正在学习 NodeJ 要从 NodeJS 连接并使用 MongoDB 我看到很多使用 Monk 或 Mongoose 的示例 这两个库等效吗 它们具有相同的功能还是都有特定的用途 作为 NodeJS 的初学者 我应该使用哪个 以下是使用
  • 猫鼬递归填充

    我已经搜索了一段时间 但没有找到任何好的答案 我有n deep我存储在数据库中并且想要填充的树所有的父母所以最后我得到了完整的树 node parent parent parent 到目前为止 我已达到 2 级 正如我提到的 我需要达到 2

随机推荐