Vamos aos erros:
-
O primeiro erro aparece simplesmente porque você precisa de um objeto BSON real. Observe que você nunca codificou nenhum dado - criandobson.binary.Binary
objeto não significa invocarBSON.encode()
.
-
E é aí que o PyMongo te engana um pouco. Obson.binary.Binary
é umstr
com patch de tempo de execução oubytes
instância (ver fonte ). É por isso que você obtém o segundo erro:o que você chama é na verdadestr.decode()
, nãoBSON.decode()
. Então,gotfield
contém os dados flutuantes aleatórios que você armazenou inicialmente, mas o próprio objeto tem alguns métodos diferentes (por exemplo,repr()
) vinculado a ele.