`

MongoDB入门2——MongoDB数据类型

阅读更多

     MongoDB的文档其实和JSON很类似,与JavaScript的对象概念也很像。但是MongoDB的数据类型更加丰富。下面我们一一介绍MongoDB的数据类型。

数据类型 描述 举例
null 表示空值或者未定义的对象 {“x”:null}
布尔值 真或者假:true或者false {“x”:true}
32位整数 32位整数。shell是不支持该类型的,shell中默认会转换成64位浮点数
64位整数 64位整数。shell是不支持该类型的,shell中默认会转换成64位浮点数
64位浮点数 64位浮点数。shell中的数字就是这一种类型 {“x”:3.14,“y”:3}
字符串 UTF-8字符串 {“foo”:“bar”}
符号 shell不支持,shell会将数据库中的符号类型的数据自动转换成字符串
对象id 文档的12字节的唯一id {“id”: ObjectId()}
日期 从标准纪元开始的毫秒数 {“date”:new Date()}
正则表达式 文档中可以包含正则表达式,遵循JavaScript的语法 {“foo”:/foobar/i}
代码 文档中可以包含JavaScript代码 {“x”:function() {}}
二进制数据 任意字节的二进制串组成,shell不支持
最大值 表示可能的最大值,shell不支持
最小值 表示可能的最小值,shell不支持
未定义 undefined {“x”:undefined}
数组 值的集合或者列表 {“arr”: [“a”,“b”]}
内嵌文档 文档可以作为文档中某个key的value {“x”:{“foo”:“bar”}}

    上面的大部分类型都是显而易见的,但是有必要详细解释一下对象id类型。我们上面说了,对象id类型是一个12字节的唯一id。每个字节2位16进制数,因此整个id类型是一个24位的字符串。其结构如下表所示:

 

    前面四个字节代表从标准纪元开始的时间戳,以秒为单位。

  • 接下来三个字节表示机器号,MongoDB入门2——MongoDB数据类型一般是机器名的hash值。这可以保证不同机器产生的id不会冲突。
  • 接下来两个字节表示进程id号,保证统一机器不同建成产生的id不冲突
  • 最后三个是计数器的计数值,对于任意一秒钟,可以产生2^24个数

    我们之前提到过,如果不在插入的时候手动的添加_id键,那么系统会自动添加一个。尽管MongoDB的id类型被设计成轻量级的,但是这样还是会不好。毕竟服务器创建这个还是会有开销的。因此,这个工作一般会放到客户端来做。

 

参考书籍

《MongoDB:The definitive guide》

 

0
0
分享到:
评论

相关推荐

    MongoDB基础教程

    例如,你可以存储嵌套的文档、数组和复杂的数据类型。 MongoDB的主要操作包括创建(Create)、读取(Read)、更新(Update)和删除(Delete),简称CRUD。创建文档是通过`insertOne()`或`insertMany()`方法实现的,...

    MongoDB官网翻译(卷一)——简介.docx

    入门 MongoDB 可以通过官方提供的入门指南,这将引导你了解 MongoDB 的基础操作。遇到技术问题时,社区版用户可以借助 MongoDB 社区论坛寻求帮助,而企业版用户则可以通过专门的技术支持门户提交问题。此外,积极...

    玩转MongoDB4.0从入门到实践、MongoDB基本操作之CRUD、进阶之聚合、中索引的重要性、数据分片

    ### MongoDB4.0从入门到实践 #### 一、初见MongoDB MongoDB是一款开源的NoSQL数据库系统,以其高性能、高可用性和易用性而受到广泛欢迎。本章节将带您初步了解MongoDB的基本概念和技术特点: 1. **MongoDB简介**...

    【MongoDB】数据库的基本操作01

    1.2.2数据类型 1.2.3集合操作 1.2.3.1创建集合 1.2.3.2查看集合 1.2.3.3删除集合 1.2.4注意点 1.3增删改查 1.3.1插入数据 1.3.2查找数据 1.3.3更新数据 1.3.4删除数据 1.3.5符号 1.1基础入门 1.1.1应用场景 易扩展性...

    MongoDB.in.Action.2nd.Edition.2016.3.pdf

    - **分片**:讲解MongoDB的水平扩展技术——分片集群的工作原理及配置步骤。 - **复制集**:探讨复制集在实现高可用性方面的作用,以及如何配置复制集。 - **性能优化** - **索引管理**:如何合理创建和维护索引...

    MongoDB document

    18. **MongoDB入门指南**(Introduction to MongoDB):这部分可能会提供一个简短的入门教程,帮助读者快速了解MongoDB的基本操作,包括安装、配置、基本查询等。 19. **MongoDB性能优化**(Optimizing MongoDB ...

    快速入门:2分钟介绍关于Morphia

    Morphia 是一个针对Google的开源数据存储框架——MongoDB的Java对象数据映射库。它提供了简单、直观的方式来将Java对象持久化到MongoDB数据库中,使得开发人员可以像操作传统Java对象一样操作数据库文档,而无需关心...

    Python项目案例开发从入门到实践.rar

    最初的基础章节,涵盖了Python语言的基本语法,如变量、数据类型、控制结构、函数定义、模块导入等,为后续的项目实践打下坚实的基础。 这些案例覆盖了Python编程的多个领域,包括网络爬虫、深度学习、游戏开发、...

    《数据库原理与应用快速入门》.rar

    这包括定义数据表的结构,如字段、数据类型的选择,以及主键和外键的概念。此外,还会讨论如何使用SQL语句来创建和修改数据库对象,例如CREATE DATABASE和ALTER TABLE命令。 "数据库的相关概念"章节会涵盖数据库...

    Python教程入门到精通:千锋Python语法基础学习视频教程.pdf

    5. **元组、字符串、字典**:介绍不可变的元组(tuple)和复杂的数据结构——字典(dictionary),它们在数据组织和存储方面的作用。 6. **函数基础**:学习如何定义和调用函数,理解参数传递,以及如何使用函数来...

    NODE.JS 两本入门书籍

    书中可能会涵盖JavaScript的基础知识,因为它是Node.js的编程语言,包括变量、数据类型、控制流以及函数等。此外,它还会讲解Node.js的事件驱动模型,这是Node.js异步非阻塞I/O实现的关键,对于理解Node.js的性能...

    2021年最新Java后端学习路线,适用于所有想要踏入Java行业的初学者(csdn)————程序.pdf

    在Java的世界里,你需要掌握基础语法、数据类型、方法、面向对象编程概念以及异常处理。理解Java的基本功,如内存管理、类和对象、封装、继承和多态,是构建强大代码能力的基石。 接着,你需要熟悉Java集合框架,...

    最新python入门基础教程完整版PDF最新版本

    本教程旨在为不同水平的编程学习者提供一个全面的Python入门指南。它涵盖了Python的核心概念、语法结构以及常用特性。Python,作为一种动态类型的、面向对象的解释型高级编程语言,以其简洁明了的语法和强大的功能而...

    GoWeb编程GoWeb编程

    Go语言,也称为Golang,是由Google开发的一种静态类型、编译型、并发型且具有垃圾回收功能的编程语言,特别适合构建高性能的Web服务。下面将详细讨论GoWeb编程中的关键知识点。 1. **Go语言基础**: - 语法特性:...

    JSON快速入门(java版本)

    JSON支持以下几种数据类型: 1. **数值**:整数和浮点数。 2. **字符串**:必须用双引号包围。 3. **布尔值**:`true` 和 `false`。 4. **数组**:由方括号包围的值的有序集合。 5. **对象**:由花括号包围的键值对...

    Redis 笔记1

    阿里巴巴的商品信息存储经历了从单一到多元的过程,包括内部改造MySQL、去IOE化(去除IBM小型机、Oracle数据库和EMC存储设备),以适应大数据、高并发和多样化数据类型的需求。 总结,Redis作为NoSQL数据库的一种,...

Global site tag (gtag.js) - Google Analytics