Mari kita lihat kesalahannya:
-
Kesalahan pertama muncul hanya karena Anda membutuhkan objek BSON yang sebenarnya. Perhatikan, bahwa Anda belum pernah menyandikan data apa pun - membuat
bson.binary.Binaryobjek tidak berarti memanggilBSON.encode(). -
Dan di situlah PyMongo menipu Anda sedikit.
bson.binary.Binaryadalahstryang ditambal-runtime ataubytescontoh (lihat sumber ). Itulah mengapa Anda mendapatkan kesalahan kedua:apa yang Anda panggil sebenarnya adalahstr.decode(), bukanBSON.decode(). Jadi,gotfieldberisi data float acak yang Anda simpan pada awalnya, tetapi objek itu sendiri memiliki beberapa metode berbeda (mis.repr()) terikat padanya.