2019独角兽企业重金招聘Python工程师标准>>>

MongoDb存储的文档必须有一个"_id"键。"_id"键的值可以是任何类型,默认为ObjectId对象。

ObjectId    优点:轻量,不同机器都能用全局唯一的同种方法方便地生成它,这是mongo采用ObjectId而非其他比较常规做法(如主键自增)的主要原因。

ObjectId简介

ObjectId存储字节为12字节,每个字节为2个十六进制数字

12字节的生成方式如下:

0|1|2|3-4|5|6-7|8-9|10|11

时间戳   -机器  -PID-计数器

ObjectId字节解释

0,1,2,3字节为秒级时间戳

4,5,6字节为机器名散列值

7,8字节为进程标识符

9,10,11字节为计数器

前9字节保证了同一秒钟不同机器不同进程产生的ObjectId是唯一的。后3字节为自动增加的计数器,确保相同进程同一秒产生的ObjectId也不同。

同一秒钟最多允许每个进程拥有2**24(python方式表示即2的24次方)个不同的ObjectId

专业词汇

Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。

转载于:https://my.oschina.net/vnlyzhang/blog/355882

_id 和 ObjectId相关推荐

  1. MongoDB中的_id和ObjectId

    _id和ObjectId MongoDB中存储的文档必须有一个"_id"键.这个键的值可以是任何类型的,默认是个ObjectId对象. 在一个集合里面,每个集合都有唯一的" ...

  2. mysql objectid_【Mongodb】_id和ObjectId详解!

    2.6.6 _id和ObjectId MongoDB 中存储的文档必须有一个"_id" 键.这个键的值可以是任何类型的,默认是个ObjectId 对象.在一个集合里面,每个文档都有 ...

  3. mongoDb中_id和ObjectId详细说明

    ObjectId使用12字节的存储空间,是一个由24个16进制数字组成的字符串(每个字节可以存储两个16进制数字). 说明: 12字节(每个字节用2个16位的组成), 因此,总共24个16位的数字. ...

  4. mongodb java id 查询数据_java 用 _id 查找 MongoDB 下的数据

    找网上的资料看了下增删改查,等日后补上. 已经实现了数据的插入,现在想通过 _id属性来查找数据.一开始看到 类似 55b321df715cc162076eb466 这么一长串的内容觉得是string ...

  5. MongoDB 根据_id来精确删除

    删除是个敏感的操作,一般要求根据MongoDB中的ObjectId来精确删除,需要转换_id的值,转换成ObjectId node>router>index.js代码示例 注:delete ...

  6. java操作MongoDB,采用_id查询

    mongodb命令行_id查询方法 直接用ObjectId() db.getCollection('imangtextcol').find({"_id":ObjectId(&quo ...

  7. Java通过_id查询mongodb数据库

    本文以mongo-java-driver-3.5.0.jar为例 1 _id介绍: MongoDB中存储的文档必须有一个"_id"键,其对应的"_id"值是由M ...

  8. Mongodb使用_id查询数据(亲测有效

    Mongodb使用_id查询数据 我在cmd中查找一个具体的常量是可以的 然后呢,当我在vscode使用的时候,一堆坑 这种的 User.findOne({ _id: `ObjectId(" ...

  9. mysql objectid_MongoDB ObjectId详解及使用

    MongoDB中我们经常会接触到一个自动生成的字段:"_id",类型为ObjectId. 本文详解ObjectId的构成和使用. ObjectId构成 之前我们使用MySQL等关系 ...

最新文章

  1. 深度学习之后会是啥?
  2. oracle怎样把查询的null转换为0
  3. UVA 583 素数打表(线性)
  4. Atitit. Gui控件and面板----程序快速启动区--最佳实践Launchy ObjectDock-o0g
  5. 超标量体系结构_计算机体系结构——以多发射和静态调度来开发ILP
  6. Linux如何增加SSH端口号
  7. UWB PDOA brief introduction
  8. 评分卡模型监控(后端分析)
  9. 看得见的数据结构Android版之开篇前言
  10. 使用SSH服务管理远程主机(RHEL8)
  11. lua遍历目录下所有文件
  12. Vue商城——首页功能
  13. 智慧零售企业向服务升级进行时,全面实时监控成重点
  14. bash报错syntax error near unexpected token `$‘\r‘‘解决方法
  15. 图片合成视频+php,将视频和图片合成到一个页面
  16. mysql 批量更新数据 备份_mysql 批量更新与批量更新多条记录的不同值实现方法...
  17. 录音文件下载_VAA云录音(系统)-VAA云录音下载安装v1.1.9
  18. 社区电商平台运营新模式 社交零售电商私域流量新玩法
  19. Java中Switch-case语句,case一个范围、区间,使用三目运算符解决!
  20. 《Unity 3.x游戏开发实例》——1.5节欢迎来到Unity 3D

热门文章

  1. python字符编码是什么_python3字符编码是什么?怎么用?
  2. docker mysql忽视大小写_Docker安装MySQL忽略大小写问题的问题
  3. c语言用随机数定义数组中,C语言 将发生的随机数存入数组,数据不能相同
  4. html阅读开放试用阶段,泰克为不同行业提供100种应用功能免费试用
  5. cad打印样式ctb丢失_CAD制图软件中如何设置CAD打印样式表(CTB)?
  6. 基于注解的 AOP 配置
  7. NSURLCache
  8. 范围解析操作符 (::)
  9. oracle游标的基础应用,Oracle 基础的游标的使用
  10. ts引入公共方法_vue3+TS+ant2.0 实践指南