MongoDB术语(持续更新)

MongoDB作为目前排名最高的非关系型数据库(目前排名第四),作为排名第一的文档型数据库,涉及到了一些原来没有的概念和术语,为了深入了解MongoDB,需要逐步了解清楚这些概念和术语。

ObjectId

作为文档型数据库,MongoDB数据库的每个文档必须有一个"_id"字段,这个字段拥有唯一值,并且自动生成,是主键。这个唯一的值就是ObjectId。

ObjectId是12个字节的BSON类型,构成如下:

ObjectId的组成
0 1 2 3 4 5 6 7 8 9 10 11
时间戳 机器标识符 进程ID 计数器
54f92930 b82f19 9305 541bcf
54f92930b82f199305541bcf
  • 时间戳:前4个字节,生成ObjectId时的时间戳(秒级);
  • 机器标识符:再三个字节,MongoDB所在主机的标识符,一般为主机名称的hash值,这样不同的主机就有不同的标识符,同一台主机上的不同MongoDB实例生成的ObjectId机器标识符是一样的,但是在多主机的分布式环境中,机器标识符来保障ObjectId的不冲突。
  • 进程ID:再两个字节,PID,机器标识符确保在分布式环境中不同的主机上生成的ObjectId不冲突,而进程ID来确保在同一台主机上,多个MongoDB进程生成的ObjectId不冲突。
  • 计数器:再三个字节,前面的九个字节确保了在不同机器不同的MongoDB进程在一个时间戳(1秒)生成的ObjectId不冲突,最后这三个字节来确保在一个时间戳内(1秒内)生成的ObjectId不冲突。

ObjectId的组成完美的解决了分布式环境下高并发情况下的主键唯一性的问题。在类似的应用场景中,可以学习借鉴。

ObjectId示例:

> mongo

MongoDB shell version: 3.0.0
connecting to: test
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
http://docs.mongodb.org/
Questions? Try the support group
http://groups.google.com/group/mongodb-user

> use TonySharpMongoDB

switched to db TonySharpMongoDB

> db.TonySharpCollection.insert({Name:"Tony",Key:"MongoDB3.0"})

WriteResult({ "nInserted" : 1 })
> db.TonySharpCollection.find()
{ "_id" : ObjectId("54f92930b82f199305541bcf"), "Name" : "Tony", "Key" : "MongoD
B3.0" }

时间: 2024-11-10 13:18:00

MongoDB术语(持续更新)的相关文章

MongoDB学习——持续更新

參考MongoDB权威指南,学习阶段.大家多多交流问题.持续更新本文 MongoDB的长处 MongoDB具有丰富的数据模型,是面向文档的数据库. easy扩展.能够在多台server之间切割数据. 开发人员仅仅需专注于编写应用.假设须要更大的数据.仅仅需在集群中加入新机器,然后让数据库来处理剩下的事情. 具有丰富的功能,比方索引,存储JavaScript,聚合,固定集合.文件存储. 不支持联接(join)和复杂的多行事物. 卓越的性能是MongoDB的主要目标,默认的存储引擎使用了内存映射文件

RedHat 和 Mirantis OpenStack 产品的版本和功能汇总和对比(持续更新)

Mirantis 和 Red Hat 作为 OpenStack 商业化产品领域的两大领军企业,在行业内有重要的地位.因此,研究其产品版本发布周期和所支持的功能,对制定 OpenStack 产品的版本和功能规划有重要的参考意义. 1. 版本基本情况 OpenStack 版本 OpenStack GA 日期 RedHat OpenStack Platform 版本 Mirantis  OpenStack Juno 2014-10-16 6 (Feb 9, 2015) 6.0 (12/25/2014)

百篇必看文章 从入门到独立开发【附加源码】持续更新

小项目实战+源码+教程 叶湘伦:爬虫福利 之 妹子图网MM批量下载 叶湘伦:用python来测试下 2019 你一共写了多少行代码? 叶湘伦:Python 愤怒的小鸟代码实现:物理引擎pymunk使用 叶湘伦:Python 超级玛丽代码实现:人物行走和碰撞检测 叶湘伦:如何用Python画一只肥肥的柯基狗狗——turtle库绘制椭圆与弧线实践 叶湘伦:如何用Python画一只兔子——turtle库circle()画圆函数的详细用法介绍 叶湘伦:教你一键快速生成后台代码,这样和测试小姐姐聊天的时间

软件测试知识点汇总目录(持续更新)

个人在工作之余通过word文档长期持续更新工作中需要涉及到的一些理论和技术知识.所谓好记记性,不如乱笔头.根据工作年限和职位的变化,以及就职公司参与的产品或者项目所涉及到的测试方面的技能不一样,会存在有些之前的技能不经常使用,会导致生疏的现象.虽然不至于归零,但是一旦需要使用的时候,有一个相对比较完整规范的文档来应急阅读来回顾其使用等是很有帮助的.比在网上搜索出来的相关零散的不完整的知识点方便的多. 文档创建年限不是很长,有很多知识项没有写入文档或者还没有来得及编写,需要在后续持续更新.文档编写

功能使用来源(持续更新)

从开始编写项目到现在,用过好多插件,但是有的时候用过后,时间一长就会忘记,这里我整理一下,以防忘记,我会持续更新的!!! 图表类: Jfreechart 适合java和jsp使用 界面差,不易维护,说白了,显示的就是一张图片: highcharts web使用,js插件,界面绚丽,官网有好多demo(当时没有找到这个,于是用的jfreechart...): echarts 近期找到的,百度制作,叫百度图说,我很看好这个,下次如有需要制作图表的时候,我一定用这个!!!这个也有好多的demo,我看了

自己总结的 iOS ,Mac 开源项目以及库,知识点------持续更新

自己在 git  上看到一个非常好的总结的东西,但是呢, fork  了几次,就是 fork  不到我的 git 上,干脆复制进去,但是,也是认真去每一个每一个去认真看了,并且也是补充了一些,感觉非常棒,所以好东西要分享,为啥用 CN 博客,有个好处,可以随时修改,可以持续更新,不用每次都要再发表,感觉这样棒棒的 我们 自己总结的iOS.mac开源项目及库,持续更新.... github排名 https://github.com/trending,github搜索:https://github.

2017年上半年软考报名时间汇总(持续更新)

全国2017年上半年软考报名时间汇总(持续更新) 关注报名时间:各省报名开始时间.结束时间不一. 关注报考科目:部分科目一年只考核一次. 关注考试时间:上半年时间为5月20日,及时开始应试准备. 最新 | 2017年上半年软考考试时间和主要考试科目 序号 地区 开始时间 结束时间 1 湖北 1月23日 4月15日 2 海南 2月13日 3月13日 3 四川 2月15日 3月15日 4 青海 2月27日 3月12日 5 浙江 3月1日 4月10日 6 山东 3月14日 3月23日 7 湖南 3月2

转-推荐的几个开发常用在线工具,可以提升开发效率(持续更新)

http://blog.csdn.net/kroclin/article/details/40634975 相信开发中每个人手头上面都有那么几个工具可以让你每天洋洋得意的开发软件,而这里我就将我觉得还挺不错的几款在线工具分享出来,仁者见仁啦,喜欢就拿走.还会持续更新,以后有新的我都贴上来. 1.MD5解密:http://www.cmd5.com/ 2.MD5加密:http://md5jiami.51240.com/ 3.json在线解析工具:http://json.parser.online.f

iOS开发系列文章(持续更新……)

iOS开发系列的文章,内容循序渐进,包含C语言.ObjC.iOS开发以及日后要写的游戏开发和Swift编程几部分内容.文章会持续更新,希望大家多多关注,如果文章对你有帮助请点赞支持,多谢! 为了方便大家交流,新建一个iOS技术交流群,欢迎大家加入:64555322 C语言 IOS开发系列--C语言之基础知识 IOS开发系列--C语言之数组和字符串 IOS开发系列--C语言之指针 IOS开发系列--C语言之预处理 IOS开发系列--C语言之存储方式和作用域 IOS开发系列--C语言之构造类型 Ob

linux学习资料持续更新中

一.LINUX基础教程 1.老男孩系列免费视频: 1) linux高薪入门实战视频教程(第二部)老男孩linux教程 http://edu.51cto.com/course/course_id-1035-page-1.html 2) 跟着老男孩从0开始一步步实战深入学习linux运维(三) http://edu.51cto.com/lesson/id-11909.html linux学习资料持续更新中,布布扣,bubuko.com