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.Binaryobjeto não significa invocarBSON.encode().
-
E é aí que o PyMongo te engana um pouco. Obson.binary.Binaryé umstrcom patch de tempo de execução oubytesinstância (ver fonte ). É por isso que você obtém o segundo erro:o que você chama é na verdadestr.decode(), nãoBSON.decode(). Então,gotfieldconté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.