_id 和 ObjectId
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相关推荐
- MongoDB中的_id和ObjectId
_id和ObjectId MongoDB中存储的文档必须有一个"_id"键.这个键的值可以是任何类型的,默认是个ObjectId对象. 在一个集合里面,每个集合都有唯一的" ...
- mysql objectid_【Mongodb】_id和ObjectId详解!
2.6.6 _id和ObjectId MongoDB 中存储的文档必须有一个"_id" 键.这个键的值可以是任何类型的,默认是个ObjectId 对象.在一个集合里面,每个文档都有 ...
- mongoDb中_id和ObjectId详细说明
ObjectId使用12字节的存储空间,是一个由24个16进制数字组成的字符串(每个字节可以存储两个16进制数字). 说明: 12字节(每个字节用2个16位的组成), 因此,总共24个16位的数字. ...
- mongodb java id 查询数据_java 用 _id 查找 MongoDB 下的数据
找网上的资料看了下增删改查,等日后补上. 已经实现了数据的插入,现在想通过 _id属性来查找数据.一开始看到 类似 55b321df715cc162076eb466 这么一长串的内容觉得是string ...
- MongoDB 根据_id来精确删除
删除是个敏感的操作,一般要求根据MongoDB中的ObjectId来精确删除,需要转换_id的值,转换成ObjectId node>router>index.js代码示例 注:delete ...
- java操作MongoDB,采用_id查询
mongodb命令行_id查询方法 直接用ObjectId() db.getCollection('imangtextcol').find({"_id":ObjectId(&quo ...
- Java通过_id查询mongodb数据库
本文以mongo-java-driver-3.5.0.jar为例 1 _id介绍: MongoDB中存储的文档必须有一个"_id"键,其对应的"_id"值是由M ...
- Mongodb使用_id查询数据(亲测有效
Mongodb使用_id查询数据 我在cmd中查找一个具体的常量是可以的 然后呢,当我在vscode使用的时候,一堆坑 这种的 User.findOne({ _id: `ObjectId(" ...
- mysql objectid_MongoDB ObjectId详解及使用
MongoDB中我们经常会接触到一个自动生成的字段:"_id",类型为ObjectId. 本文详解ObjectId的构成和使用. ObjectId构成 之前我们使用MySQL等关系 ...
最新文章
- 深度学习之后会是啥?
- oracle怎样把查询的null转换为0
- UVA 583 素数打表(线性)
- Atitit. Gui控件and面板----程序快速启动区--最佳实践Launchy ObjectDock-o0g
- 超标量体系结构_计算机体系结构——以多发射和静态调度来开发ILP
- Linux如何增加SSH端口号
- UWB PDOA brief introduction
- 评分卡模型监控(后端分析)
- 看得见的数据结构Android版之开篇前言
- 使用SSH服务管理远程主机(RHEL8)
- lua遍历目录下所有文件
- Vue商城——首页功能
- 智慧零售企业向服务升级进行时,全面实时监控成重点
- bash报错syntax error near unexpected token `$‘\r‘‘解决方法
- 图片合成视频+php,将视频和图片合成到一个页面
- mysql 批量更新数据 备份_mysql 批量更新与批量更新多条记录的不同值实现方法...
- 录音文件下载_VAA云录音(系统)-VAA云录音下载安装v1.1.9
- 社区电商平台运营新模式 社交零售电商私域流量新玩法
- Java中Switch-case语句,case一个范围、区间,使用三目运算符解决!
- 《Unity 3.x游戏开发实例》——1.5节欢迎来到Unity 3D
热门文章
- python字符编码是什么_python3字符编码是什么?怎么用?
- docker mysql忽视大小写_Docker安装MySQL忽略大小写问题的问题
- c语言用随机数定义数组中,C语言 将发生的随机数存入数组,数据不能相同
- html阅读开放试用阶段,泰克为不同行业提供100种应用功能免费试用
- cad打印样式ctb丢失_CAD制图软件中如何设置CAD打印样式表(CTB)?
- 基于注解的 AOP 配置
- NSURLCache
- 范围解析操作符 (::)
- oracle游标的基础应用,Oracle 基础的游标的使用
- ts引入公共方法_vue3+TS+ant2.0 实践指南