objectid --使用MongoDB objectid的工具

使用MongoDB的工具 ObjectIds .

class bson.objectid.ObjectId(oid=None)

初始化一个新的ObjectId。

ObjectId是一个12字节的唯一标识符,由以下部分组成:

  • 一个4字节的值,表示自Unix纪元以来的秒数,

  • 一个5字节的随机值,

  • 一个3字节的计数器,从一个随机值开始。

默认情况下, ObjectId() 创建新的唯一标识符。可选参数 oid 可以是 ObjectId 或任意12个 bytes 或者,在python2中,任何12个字符 str .

例如,12个字节b'foo-bar-quox'不遵循ObjectId规范,但它们是可接受的输入:

>>> ObjectId(b'foo-bar-quux')
ObjectId('666f6f2d6261722d71757578')

oid 也可以是 unicodestr 24个十六进制数字:

>>> ObjectId('0123456789ab0123456789ab')
ObjectId('0123456789ab0123456789ab')
>>>
>>> # A u-prefixed unicode literal:
>>> ObjectId(u'0123456789ab0123456789ab')
ObjectId('0123456789ab0123456789ab')

加薪 InvalidId 如果 oid 不是12个字节也不是24个十六进制数字,或者 TypeError 如果 oid 不是可接受的类型。

参数
  • oid (可选):有效的ObjectId。

参见

MongoDB文档

objectids

在 3.8 版更改: ObjectId 现在实现 ObjectID specification version 0.2 .

str(o)

获取的十六进制编码版本 ObjectId o .

以下属性始终有效:

>>> o = ObjectId()
>>> o == ObjectId(str(o))
True

此表示对于URL或其他位置非常有用 o.binary 是不合适的。

property binary

此ObjectId的12字节二进制表示。

classmethod from_datetime(generation_time)

创建一个具有特定生成时间的虚拟ObjectId实例。

此方法对于对包含以下内容的字段执行范围查询非常有用 ObjectId 实例。

警告

插入包含使用此方法生成的ObjectId的文档是不安全的。此方法故意消除objectid通常提供的唯一性保证。使用此方法生成的objectID应在查询中独占使用。

generation_time 将转换为UTC。天真的datetime实例将被视为已经包含UTC。

使用此助手获取文档的示例 "_id" 2010年1月1日之前生成的将是:

>>> gen_time = datetime.datetime(2010, 1, 1)
>>> dummy_id = ObjectId.from_datetime(gen_time)
>>> result = collection.find({"_id": {"$lt": dummy_id}})
参数
  • generation_timedatetime 用作结果ObjectId的生成时间。

property generation_time

A datetime.datetime 实例来表示此 ObjectId .

这个 datetime.datetime 并且表示时区中的生成。精确到秒。

classmethod is_valid(oid)

检查是否 oid 字符串无效。

参数
  • oid :要验证的对象id

2.3 新版功能.