BINARY_SUBTYPE = 0
BSON формат стандартный
FUNCTION_SUBTYPE = 1
BSON формат для функции
OLD_BINARY_SUBTYPE = 2
Старый BSON формат
OLD_UUID_SUBTYPE = 3
Старый BSON формат для UUID.
UUID_SUBTYPE = 4
BSON формат для UUID.
STANDARD = 4
Стандартный UUID представление
PYTHON_LEGACY = 3
Старое Python UUID представление
JAVA_LEGACY = 5
Старое Java UUID представление
CSHARP_LEGACY = 6
Старое C#/.net UUID представление
MD5_SUBTYPE = 5
BSON формат для MD5
USER_DEFINED_SUBTYPE = 128
BSON формат для пользоватлеьских данных
bson.binary.
Binary
(data, subtype=BINARY_SUBTYPE)Наследние str
BSON представление данных
data - бинарное представление данных
subtype - опционально, формат представление данных
subtype
Формат представления данных
bson.binary.
UUIDLegacy
(obj)Наследник bson.binary.Binary
UUID враппер для поддержки работы с UUID хранящий PYTHON_LEGACY.
>>> import uuid
>>> from bson.binary import Binary, UUIDLegacy, STANDARD
>>> from bson.codec_options import CodecOptions
>>> my_uuid = uuid.uuid4()
>>> coll = db.get_collection('test',
... CodecOptions(uuid_representation=STANDARD))
>>> coll.insert_one({'uuid': Binary(my_uuid.bytes, 3)}).inserted_id
ObjectId('...')
>>> coll.find({'uuid': my_uuid}).count()
0
>>> coll.find({'uuid': UUIDLegacy(my_uuid)}).count()
1
>>> coll.find({'uuid': UUIDLegacy(my_uuid)})[0]['uuid']
UUID('...')
>>>
>>> # Convert from subtype 3 to subtype 4
>>> doc = coll.find_one({'uuid': UUIDLegacy(my_uuid)})
>>> coll.replace_one({"_id": doc["_id"]}, doc).matched_count
1
>>> coll.find({'uuid': UUIDLegacy(my_uuid)}).count()
0
>>> coll.find({'uuid': {'$in': [UUIDLegacy(my_uuid), my_uuid]}}).count()
1
>>> coll.find_one({'uuid': my_uuid})['uuid']
UUID('...')
uuid
UUID экземпляр обернутый