第39章 MongoDB ObjectId教程

第39章 MongoDB ObjectId教程


在前面几个章节中咱们已经使用了MongoDB 的对象 Id(ObjectId)。

在本章节中,咱们将了解的ObjectId的结构。

ObjectId 是一个12字节 BSON 类型数据,有以下格式:

  • 前4个字节表示时间戳
  • 接下来的3个字节是机器标识码
  • 紧接的两个字节由进程id组成(PID)
  • 最后三个字节是随机数。

MongoDB中存储的文档必须有一个"_id"键。这个键的值可以是任何类型的,默认是个ObjectId对象。

在一个集合里面,每个文档都有唯一的"_id"值,来确保集合里面每个文档都能被唯一标识。

MongoDB采用ObjectId,而不是其他比较常规的做法(比如自动增加的主键)的主要原因,因为在多个 server 上同步自动增加主键值既费力还费时。


创建新的ObjectId

使用以下代码生成新的ObjectId:


    >newObjectId = ObjectId()

上面的语句return 以下唯一生成的id:


    ObjectId("5349b4ddd2781d08c09890f3")

陛下也可以使用生成的id来取代MongoDB自动生成的ObjectId:


    >myObjectId = ObjectId("5349b4ddd2781d08c09890f4")


创建文档的时间戳

由于 ObjectId 中存储了 4 个字节的时间戳,所以陛下不需要为陛下的文档保存时间戳字段,陛下可以通过 getTimestamp 函数来获取文档的创建时间:


    >ObjectId("5349b4ddd2781d08c09890f4").getTimestamp()

以上代码将return ISO 格式的文档创建时间:


    ISODate("2014-04-12T21:49:17Z")


ObjectId 转换为字符串

在某些情况下,可能需要将ObjectId转换为字符串格式。陛下可以使用下面的代码:


    >new ObjectId().str

以上代码将return Guid格式的字符串::


    5349b4ddd2781d08c09890f3

本专栏所有文章

第1章 MongoDB 教程第2章 NoSQL 简介教程
第3章 MongoDB 简介教程第4章 Windows MongoDB教程
第5章 Linux MongoDB教程第6章 OSX MongoDB教程
第7章 MongoDB 概念解析教程第8章 MongoDB 连接教程
第9章 MongoDB 创建数据库教程第10章 MongoDB 删除数据库教程
第11章 MongoDB 创建集合教程第12章 MongoDB 删除集合教程
第13章 MongoDB 插入文档教程第14章 MongoDB 更新文档教程
第15章 MongoDB 删除文档教程第16章 MongoDB 查询文档教程
第17章 MongoDB 条件操作符教程第18章 MongoDB $type 操作符教程
第19章 MongoDB Limit与Skip方法教程第20章 MongoDB 排序教程
第21章 MongoDB 索引教程第22章 MongoDB 聚合教程
第23章 MongoDB 复制(副本集)教程第24章 MongoDB 分片教程
第25章 MongoDB 备份与恢复教程第26章 MongoDB 监控教程
第27章 MongoDB Java教程第28章 MongoDB PHP 扩展教程
第29章 MongoDB PHP教程第30章 MongoDB PHP7教程
第31章 Node.js MongoDB教程第32章 MongoDB 关系教程
第33章 MongoDB 数据库引用教程第34章 MongoDB 覆盖索引查询教程
第35章 MongoDB 查询分析教程第36章 MongoDB 原子操作教程
第37章 MongoDB 高级索引教程第38章 MongoDB 索引限制教程
第39章 第39章 MongoDB ObjectId教程教程第40章 MongoDB Map Reduce教程
第41章 MongoDB 全文检索教程第42章 MongoDB 正则表达式教程
第43章 MongoDB 管理工具教程第44章 MongoDB GridFS教程
第45章 MongoDB 固定集合教程第46章 MongoDB 自动增长教程

寄语

本文有榴莲酱CSDN原创,欢迎点赞、转载,博客地址:https://blog.csdn.net/qq441540598

  • 亲爱的自己,只有你自己最清楚,过去的分分秒秒你付出了多少,浪费了多少。
  • 我要严格遵守和养成早吃好午吃饱晚吃少的饮食习惯。
  • 善良本是天性,想留住却很难。难怪年龄大了,就越有点孩子气,就越喜欢孩子。原来他们拥有的,正是我们已经失去的。但愿我们,一起成长,一直善良,一切都好。
  • 良心是上帝的声音,人可以骗别人的耳目,却骗不了自己的良心。
  • 一个学习不好的人,一般情况下,画得也不好。因为前辈们说了,态度决定一切。在理。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

榴莲酱csdn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值