- MongoDB 教程
- MongoDB - 主页
- MongoDB - 概述
- MongoDB - 优点
- MongoDB - 环境
- MongoDB - 数据建模
- MongoDB - 创建数据库
- MongoDB - 删除数据库
- MongoDB - 创建集合
- MongoDB - 删除集合
- MongoDB - 数据类型
- MongoDB - 插入文档
- MongoDB - 查询文档
- MongoDB - 更新文档
- MongoDB - 删除文档
- MongoDB - 投影
- MongoDB - 限制记录
- MongoDB - 记录排序
- MongoDB - 索引
- MongoDB - 聚合
- MongoDB - 复制
- MongoDB - 分片
- MongoDB - 创建备份
- MongoDB - 部署
- MongoDB-Java
- MongoDB-PHP
- 高级 MongoDB
- MongoDB - 关系
- MongoDB - 数据库参考
- MongoDB - 涵盖查询
- MongoDB - 分析查询
- MongoDB - 原子操作
- MongoDB - 高级索引
- MongoDB - 索引限制
- MongoDB - 对象 ID
- MongoDB - 映射减少
- MongoDB - 文本搜索
- MongoDB - 正则表达式
- 与 Rockmongo 合作
- MongoDB-GridFS
- MongoDB - 上限集合
- 自动递增序列
- MongoDB 有用资源
- MongoDB - 问题与解答
- MongoDB - 快速指南
- MongoDB - 有用的资源
- MongoDB - 讨论
MongoDB - 对象 ID
我们在前面的所有章节中都使用了 MongoDB 对象 ID。在本章中,我们将了解ObjectId的结构。
ObjectId是 12 字节 BSON 类型,具有以下结构-
- 前 4 个字节表示自 Unix 纪元以来的秒数
- 接下来的3个字节是机器标识符
- 接下来的 2 个字节由进程 ID组成
- 最后 3 个字节是随机计数器值
MongoDB使用ObjectIds作为每个文档的_id字段的默认值,该值在创建任何文档时生成。ObjectId 的复杂组合使得所有 _id 字段都是唯一的。
创建新的对象 ID
要生成新的 ObjectId,请使用以下代码 -
>newObjectId = ObjectId()
上述语句返回以下唯一生成的 id -
ObjectId("5349b4ddd2781d08c09890f3")
您还可以提供 12 字节 id,而不是 MongoDB 生成 ObjectId -
>myObjectId = ObjectId("5349b4ddd2781d08c09890f4")
创建文档的时间戳
由于 _id ObjectId 默认存储 4 字节时间戳,因此在大多数情况下您不需要存储任何文档的创建时间。您可以使用 getTimestamp 方法获取文档的创建时间 -
>ObjectId("5349b4ddd2781d08c09890f4").getTimestamp()
这将以 ISO 日期格式返回该文档的创建时间 -
ISODate("2014-04-12T21:49:17Z")
将 ObjectId 转换为字符串
在某些情况下,您可能需要字符串格式的 ObjectId 值。要将 ObjectId 转换为字符串,请使用以下代码 -
>newObjectId.str
上面的代码将返回 Guid 的字符串格式 -
5349b4ddd2781d08c09890f3