在前面学习的所有章节中,都有使用了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
值。 要转换objectid
为字符串,请使用以下代码 -
>newobjectid.str
上面的代码将返回guid的字符串格式 -
595b99d9f6a6243715b3c312