•   MongoDB教程
  • MongoDB快速入门
  • MongoDB历史
  • MongoDB特点
  • MongoDB数据库的优点
  • MongoDB安装配置(Windows)
  • MongoDB安装配置(Ubuntu)
  • MongoDB安装配置(RedHat/CentOS)
  • MongoDB数据建模
  • MongoDB创建数据库
  • MongoDB删除数据库
  • MongoDB创建集合
  • MongoDB删除集合
  • MongoDB数据类型
  • MongoDB插入文档
  • MongoDB查询文档
  • MongoDB更新文档
  • MongoDB删除文档
  • MongoDB投影(选择字段)
  • MongoDB限制记录数
  • MongoDB排序记录
  • MongoDB索引
  • MongoDB聚合
  • MongoDB复制
  • MongoDB分片
  • MongoDB备份与恢复
  • MongoDB部署
  • Java连接MongoDB操作
  • Python连接MongoDB操作
  • PHP连接MongoDB操作
  • Ruby连接MongoDB操作
  • 高级部分
  • MongoDB关联关系
  • MongoDB数据库引用
  • MongoDB覆盖查询
  • MongoDB分析查询
  • MongoDB原子操作
  • MongoDB高级索引
  • MongoDB索引限制
  • MongoDB ObjectId
  • MongoDB Map Reduce
  • MongoDB文本搜索
  • MongoDB正则表达式
  • MongoDB GridFS
  • MongoDB固定循环集合
  • MongoDB自动递增序列
  • 用户及安全
  • MongoDB安全检查表
  • MongoDB认证
  • MongoDB用户
  • MongoDB添加用户
  • MongoDB启用身份验证
  • MongoDB管理用户和角色
  • MongoDB更改用户密码和自定义数据

MongoDB ObjectId

在前面学习的所有章节中,都有使用了MongoDB对象标识符。 在本章中,我们将了解ObjectId的结构。

ObjectId 是具有以下结构的12字节BSON类型 -

  • 前4个字节表示从unix纪元开始的秒数
  • 接下来的3个字节是机器标识符
  • 接下来的2个字节由进程ID组成
  • 最后3个字节是随机计数器值

MongoDB使用ObjectIds作为每个文档的_id字段的默认值,这是在创建任何文档时生成的。 ObjectId的复杂组合使得所有_id字段都是唯一的。

>newObjectId = ObjectId()

上述语句返回以下唯一生成的id -

ObjectId("595b99d9f6a6243715b3c312")

还可以提供一个12字节的 id 来可代替 MongoDB 生成 ObjectId -

>myObjectId = ObjectId("595b99d9f6a6243715b3c312")

创建文档的时间戳

由于_id ObjectId默认存储4字节的时间戳,在大多数情况下,不需要存储任何文档的创建时间。可以使用getTimestamp方法获取文档的创建时间 -

>ObjectId("595b99d9f6a6243715b3c312").getTimestamp()

这将以ISO日期格式返回此文档的创建时间 -

> ObjectId("595b99d9f6a6243715b3c312").getTimestamp()
ISODate("2017-07-04T13:36:25Z")

将ObjectId转换为String

在某些情况下,可能需要使用字符串格式的ObjectId值。 要转换ObjectId为字符串,请使用以下代码 -

>newObjectId.str

上面的代码将返回Guid的字符串格式 -

595b99d9f6a6243715b3c312

上一篇:MongoDB索引限制下一篇:MongoDB Map Reduce