ObjectId()
说明
-
ObjectId(<value>)
-
重要
mongosh 方法
本页面提供
mongosh
方法的相关信息。这 不是 特定于语言的驱动程序(例如 Node.js)的文档。如需了解 MongoDB API 驱动程序,请参阅特定语言的 MongoDB 驱动程序文档。
返回新的 ObjectId 。 12字节 ObjectId 由以下部分组成:
-
一个 4 字节时间戳,它表示 ObjectId 的创建时间,并以自 UNIX 纪元以来的秒数为单位进行测量。
-
每个进程会生成一次 5 字节随机值。这个随机值对于机器和进程是唯一的。
-
三字节递增计数器(初始化为随机值)。
对于时间戳和计数器值,最高有效字节在字节序列中最先出现(大端字节序)。对于其他 BSON 值,最低有效字节最先出现(小端字节序)。
如果使用整数值创建对象标识符(ObjectId),则该整数将替换时间戳。
-
兼容性
可以使用
ObjectId()
查找托管在以下环境中的部署:
-
MongoDB Atlas :用于在云中部署 MongoDB 的完全托管服务
-
MongoDB Enterprise :基于订阅、自我管理的 MongoDB 版本
-
MongoDB Community :源代码可用、免费使用且可自行管理的 MongoDB 版本
语法
ObjectId()
可以接受以下输入值之一:
输入类型
|
说明
|
---|---|
hexadecimal
|
可选。新对象标识符的 24 个字符十六进制字符串值。
|
integer
|
可选。将整数值(以秒为单位)添加到
Unix 纪元
中,以创建新的时间戳。
|
方法
ObjectId()
有以下方法:
方法
|
说明
|
---|---|
以日期形式返回对象的时间戳部分。
|
|
以十六进制字符串形式返回对象标识符。
|
行为
从 MongoDB 5.0 开始,
mongosh
将取代旧版的
mongo
shell。
ObjectId()
方法在
mongosh
中的运行方式与在旧版的
mongo
shell 中的运行方式不同。有关旧版方法的更多信息,请参阅
旧版的 mongo Shell
。
举例
生成新的对象标识符
要生成新的 ObjectId,请使用不含参数的
ObjectId()
:
newObjectId = ObjectId()
在此示例中,
newObjectId
的值为:
ObjectId("507f1f77bcf86cd799439011")
返回十六进制字符串
要以十六进制字符串形式返回对象标识符(ObjectId),请使用
toString()
方法。
ObjectId("507f191e810c19729de860ea").toString()
该方法返回:
507f191e810c19729de860ea
指定日期
您可以使用自定义 日期 来指定 ObjectId。
以 作为参数,设置新的 ObjectId
timestamp
您可以使用
ObjectId.getTimestamp()
验证日期。
newObjectId = ObjectId(timestamp)
ObjectId("6592008029c8c3e4dc76256c")
指定整数字符串
如果要调整对象标识符时间戳,请使用整数生成新的对象标识符。
newObjectId = ObjectId(32)
对象标识符的值如下所示:
ObjectId("00000020f51bb4362eee2a4d")
示例对象标识符由以下部分组成:
-
一个四字节的时间戳,
00000020
-
五字节随机元素,
f51bb4362e
-
一个三字节计数器,
ee2a4d
ObjectId 的前四个字节是自
Unix 纪元
以来的秒数。在此示例中,ObjectId 时间戳为
00000020
,以十六进制表示为
32
。
指定一个十六进制字符串
如果要使用十六进制字符串来指定ObjectId,请在调用
ObjectId()
时传递一个唯一的 24 字符十六进制值:
newObjectId = ObjectId("507f191e810c19729de860ea")