ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MongoDB 数据类型

2021-11-16 21:34:23  阅读:176  来源: 互联网

标签:字节 ObjectID MongoDB 数据类型 Deprecated id


MongoDB 数据类型

 

数据类型中文名称Number英文名称备注
Double 双精度浮点数 1 “double”  
String 字符串 2 “string”  
Object 对象 3 “object”  
Array 数组 4 “array”  
Binary data 二进制数据 5 “binData”  
Undefined 未定义 6 “undefined” Deprecated.
ObjectId 对象编号 7 “objectId”  
Boolean 布尔型 8 “bool”  
Date 日期 9 “date”  
Null 10 “null”  
Regular Expression 正则表达式 11 “regex”  
DBPointer   12 “dbPointer” Deprecated.
JavaScript JS脚本 13 “javascript”  
Symbol 符号 14 “symbol” Deprecated.
JavaScript (with scope) JS脚本(具有范围) 15 “javascriptWithScope”  
32-bit integer 整数 16 “int”  
Timestamp 时间戳 17 “timestamp”  
64-bit integer 长整数 18 “long”  
Decimal128 小数 19 “decimal” New in version 3.4.
Min key 最小Key -1 “minKey”  
Max key 最大Key 127 “maxKey”  

在 MongoDB 中数字默认 double 类型

ObjectID 和 _id
  • _id:MongoDB 中存储的文档必须有一个 _id 键,确保集合中每个文档都有唯一标识(类似 MySQL 的主键)

     

  • ObjectID:是 _id 的默认类型(对象很小,可能是惟一的,生成速度快,而且是有序的),由 12 个字节组成,其结构如下:

image-20211105144406272

  • 时间戳(4个字节):标准纪元开始的时间(秒),每一秒的时间戳是不同的

  • 机器(3个字节):不同主机产生的机器名的散列值是不同的

  • PID(2个字节):同一台主机上并发多个进程产生的 ObjectID 是进程号是不同的

  • 递增计数器(3个字节):自动增加的计数器,确保相同进程同一秒产生的 ObjectID 也是不一样的

时间戳+机器+PID: 确保同一秒不同机器不同进程产生的 ObjectID 是唯一的

递增计数器:用来确保在同一秒内产生的 ObjectId 也不会冲突

显然系统生成的 ObjectID 已经很严谨了,但尽量采用程序创建的方式,速度、可读性、可维护性都要强于系统创建。在客户端生成体现了 MongoDB 的设计理念:能从服务器端转移到驱动程序来做的事,就尽量转移。

标签:字节,ObjectID,MongoDB,数据类型,Deprecated,id
来源: https://www.cnblogs.com/ccl971123/p/15563796.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有