MongoDB的数据类型介绍
参考MongoDB官网:https://docs.mongodb.com/manual/reference/bson-types/
MongoDB文档存储是使用BSON类型,BSON(BSON short for Binary JSON, is a binary-encoded serialization of JSON-like documents)是二进制序列化的形式。类如JSON,同样支持内嵌各种类型。
Type | Number | Alias | Notes |
---|---|---|---|
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 | 13 | “javascript” | |
Symbol | 14 | “symbol” | Deprecated. |
JavaScript (with scope) | 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 | -1 | “minKey” | |
Max key | 127 | “maxKey” |
重点介绍几个类型,
ObjectId类型:这是MongoDB生成的类似关系型DB表主键的唯一key,生成快速。具体由12个字节组成:
前4个字节是unix秒,3个字节的机器标识符(为了分布式下的主键唯一),2个字节的进程id,3个字节的计数器数字
- a 4-byte value representing the seconds since the Unix epoch,
- a 3-byte machine identifier,
- a 2-byte process id, and
- a 3-byte counter, starting with a random value.
MongoDB的设计之初就是要做分布式数据库。从ObjectId唯一主键的生成上,值得分布式系统设计人员参考。
3个字节的机器标识符,表示MongoDB实例所在机器的不同;2个字节的进程id,表示相同机器的不同MongoDB实例。再加上时间戳和随机数(3个字节随机数,同一秒上,理论上可以有2^24次个插入),很大程度上保证了ObjectId的唯一性。
String类型:
BSON字符串都是UTF-8编码。
Timestamps类型:
BSON具有内部MongoDB使用的特殊时间戳类型,并且不与常规Date类型相关联。 时间戳值是64位值,其中:
第一个32bit是unix时间戳秒;
第二个32bit是当前秒的递增操作数。
可以保证一个mongod实例下,timestamps总是唯一的。
Date类型:
BSON Date是一个64bit有符号整数,表示自Unix纪元以来的毫秒数(1970年1月1日)。
MongoDB的数据类型介绍的更多相关文章
- Redis常用数据类型介绍、使用场景及其操作命令
Redis常用数据类型介绍.使用场景及其操作命令 本文章同时也在cpper.info发布. Redis目前支持5种数据类型,分别是: 1.String(字符串) 2.List(列表) 3.Hash(字 ...
- MongoDB 之 数据类型 最无聊! But 最有用! MongoDB - 3
MongoDB的新篇章开始啦 - 数据类型 https://www.cnblogs.com/xuzhaocai/p/8048177.html 一.MongoDB 之 丰富多彩的数据类型世界 首先我们要 ...
- 3,MongoDB之数据类型
一.MongoDB 之数据类型 首先我们要先了解一下MongoDB中有什么样的数据类型: Object ID :Documents 自生成的 _id String: 字符串,必须是utf-8 Boo ...
- Hadoop数据类型介绍
我们知道hadoop是由Java 编程写的.因此我们使用Java开发环境来操作HDFS,编写mapreduce也是很自然的事情.但是这里面hadoop却对Java数据类型进行了包装,那么hadoop的 ...
- C 各种数据类型介绍
1.各种数据类型介绍: 基本数据类型最主要的特点是,其值不可以再分解为其它类型.也就是说,基本数据类型是自我说明的. 1.1整型 整形包括短整型.整形和长整形. 1.1.1短整形 short a=1; ...
- mongoDB之数据类型
mongoDB之数据类型 Object ID :文档的id String: 字符串,最常用,必须是utf-8 Boolean:布尔值,true 或者false Integer:整数 Double:浮 ...
- 以太坊智能合约 Solidity 的常用数据类型介绍
目录 目录 1.数组 1.1.对数组的增删改查操作. 2.String.Bytes.Mapping的使用 3.Enums 和 Structs 的简单应用 4.Ether 单位和 Time 单位 5.A ...
- MySQL:数据类型介绍
数据类型介绍 一.整数类型(可以添加自增约束条件) 数据类型 存储需要 有符号 无符号 tinyint 1个字节 -2^7~2^7-1 0~2^8 smallint 2个字节 -2^15~2^15-1 ...
- MongoDB - 认识MongoDB及数据类型
目录 MongoDB - 认识MongoDB及数据类型 启动 MogoDB的数据 MogoDB的数据类型 1.Object ID : Documents自生成的_id 2.string : 字符串,必 ...
随机推荐
- Linux下查看tomcat控制台输出信息
1.进入tomcat/logs文件夹下 2.# tail -f catalina.out -f:实时刷新
- 聊聊setTimeout和setInterval线程
在聊setTimeout和setInterval这两个事件的前,先聊另外一个与之密切关联的知识点,那就是线程(thread).而线程有常常跟另外一个词语--“进程”一起出现.那么何为线程?何为线程呢? ...
- git批量修改已经提交的commit的姓名和邮箱
首先,我们创建change.sh脚本,并根据个人信息复制以下脚本. #!/bin/sh git filter-branch --env-filter ' OLD_EMAIL="填写原来的邮箱 ...
- DirectX SDK (June 2010)安装错误S1023,解决方法
转自:http://hi.baidu.com/rootcat/item/6730f15f85e2c1958c12ed81 DirectX SDK (June 2010)安装错误S1023,解决方法 导 ...
- 通过日志过滤的方法,统计每天内容详情页面的PV数
1.目的: 每天凌晨0点1分统计用户点击进入内容详情页的次数,对内容点击量形成榜单. 2.分析: A./data/log/epg.access.log日志实时打印用户访问页面的日志,并且每天凌晨0点会 ...
- 添加RPMfusion仓库
先添加epel Fedora的意识形态很是严谨,它不会自带任何非自由组件.官方仓库不会提供一些包含有非自由组件的基本软件,比如像多媒体编码.因此,安装一些第三方仓库很有必要,这些仓库会为我们提供一些基 ...
- git merge 步骤
这两天用git比较多,自己学习的过程踩了不少误区,特意记录下来. 当多人合作开发使用git作为代码管理仓库时,要注意自己的更新不能冲掉别人的更新,因为自己一开始不了解的时候就出现了这种情况.首先一定要 ...
- Eclipse更新maven项目仓库依赖
ALT+F5 弹出 选择需要更新的项目, 点击ok, 就开始下载更新依赖的jar包了
- Spring消息中间件ActiveMQ
1:下载ActiveMQ (apache-activemq-5.15.6) 2:下载后的结构如下 3:启动activeMQ 可以通过cmd控制台的方式,也可以通过注册services服务启动的方式 3 ...
- 使用python scrapy爬取知乎提问信息
前文介绍了python的scrapy爬虫框架和登录知乎的方法. 这里介绍如何爬取知乎的问题信息,并保存到mysql数据库中. 首先,看一下我要爬取哪些内容: 如下图所示,我要爬取一个问题的6个信息: ...