Hãy xem qua các lỗi:
-
Lỗi đầu tiên xuất hiện đơn giản vì bạn cần một đối tượng BSON thực tế. Lưu ý rằng bạn chưa bao giờ mã hóa bất kỳ dữ liệu nào - tạo
bson.binary.Binaryđối tượng không có nghĩa là gọiBSON.encode(). -
Và đó là điểm mà PyMongo lừa bạn một chút.
bson.binary.Binarylà mộtstrthời gian chạy được vá hoặcbytesví dụ ( xem nguồn ). Đó là lý do tại sao bạn gặp lỗi thứ hai:những gì bạn gọi thực sự làstr.decode(), không phảiBSON.decode(). Vì vậy,gotfieldchứa dữ liệu float ngẫu nhiên mà bạn đã lưu trữ ban đầu, nhưng bản thân đối tượng có một số phương thức khác nhau (ví dụ:repr()) ràng buộc với nó.