Pojďme si projít chyby:
-
První chyba se objeví jednoduše proto, že potřebujete skutečný objekt BSON. Všimněte si, že jste nikdy nekódovali žádná data – vytvoření
bson.binary.Binary
objekt neznamená vyvoláníBSON.encode()
. -
A to je místo, kde vás PyMongo trochu podvádí.
bson.binary.Binary
jestr
opravený za běhu nebobytes
instance (viz zdroj ). Proto se zobrazí druhá chyba:to, co voláte, je ve skutečnostistr.decode()
, nikoliBSON.decode()
. Takžegotfield
obsahuje náhodná plovoucí data, která jste původně uložili, ale samotný objekt má různé metody (např.repr()
) na to vázán.