如何使用 BSON (Python) 从 MongoDB 中检索存储的数据?

How to retrieve data stored from MongoDB using BSON (Python)?

到目前为止,在我的代码中,我设法将数据存储到 mongoDB 中。 现在我希望能够检索我存储的数据。 如您所见,我一直在尝试,但不断出现错误。 使用 BSON,我是否必须先解码数据才能从 mongoDB 检索数据? 任何帮助将不胜感激! (代码乱七八糟,我只是摸索着练习)

import json
from json import JSONEncoder

import pymongo 
from pymongo import MongoClient

from bson.binary import Binary
import pickle

#Do this for each 
client = MongoClient("localhost", 27017)

db = client['datacampdb']
coll = db.personpractice4_collection  #creating a collection in the database 
#my collection on the database is called personpractice4_collection 

class Person:
    def __init__(self, norwegian, dame, brit, german, sweed):
        self.__norwegian = norwegian
        self.__dame = dame
        self.__brit = brit
        self.__german = german #private variable 
        self.__sweed = sweed
 
   # create getters and setters later to make OOP
 
personone = Person("norwegian", "dame", "brit", "german","sweed")  

class PersonpracticeEncoder(JSONEncoder): 
        def default(self, o):
            return o.__dict__
    

#Encode Person Object into JSON"
personpracticeJson = json.dumps(personone, indent=4, cls=PersonpracticeEncoder)
practicedata = pickle.dumps(personpracticeJson)
coll.insert_one({'bin-data': Binary(practicedata)})

#print(personpracticeJson)
#print(db.list_collection_names()) #get then names of my collections in DB 



#retriving data from mongodb 
#Retrieving a Single Document with find_one()
print(({'bin-data': Binary(practicedata)}).find_one()) #not working 

应该在集合上调用 find_one 方法

{'bin-data': Binary(practicedata)}是查找文档的查询

coll.find_one({'bin-data': Binary(practicedata)})

表示:在集合 coll 中查找文档,其中 bin-data 等于 Binary(practicedata)