📅  最后修改于: 2020-11-27 06:03:47             🧑  作者: Mango
在之前的所有章节中,我们一直在使用MongoDB对象ID。在本章中,我们将了解ObjectId的结构。
ObjectId是12字节的BSON类型,具有以下结构-
MongoDB使用ObjectIds作为每个文档的_id字段的默认值,该默认值是在创建任何文档时生成的。 ObjectId的复杂组合使所有_id字段唯一。
要生成新的ObjectId,请使用以下代码-
>newObjectId = ObjectId()
上面的语句返回以下唯一生成的id-
ObjectId("5349b4ddd2781d08c09890f3")
除了提供MongoDB生成ObjectId之外,您还可以提供12字节的ID-
>myObjectId = ObjectId("5349b4ddd2781d08c09890f4")
由于_id ObjectId默认情况下存储4字节的时间戳,因此在大多数情况下,您不需要存储任何文档的创建时间。您可以使用getTimestamp方法获取文档的创建时间-
>ObjectId("5349b4ddd2781d08c09890f4").getTimestamp()
这将以ISO日期格式返回此文档的创建时间-
ISODate("2014-04-12T21:49:17Z")
在某些情况下,您可能需要字符串格式的ObjectId值。要以字符串转换ObjectId,请使用以下代码-
>newObjectId.str
上面的代码将返回Guid的字符串格式-
5349b4ddd2781d08c09890f3