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.Binary
là mộtstr
thời gian chạy được vá hoặcbytes
ví 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,gotfield
chứ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ó.