到目前為止,在我的代碼中,我成功地將數(shù)據(jù)存儲到 mongoDB 中?,F(xiàn)在我希望能夠檢索我存儲的數(shù)據(jù)。正如你所看到的,我一直在嘗試,但不斷出現(xiàn)錯誤。使用 BSON 時,我是否必須首先解碼數(shù)據(jù)才能從 mongoDB 檢索數(shù)據(jù)?任何幫助將不勝感激!(對混亂的代碼表示歉意,我只是通過反復試驗進行練習)import jsonfrom json import JSONEncoderimport pymongo from pymongo import MongoClientfrom bson.binary import Binaryimport 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
1 回答

紅糖糍粑
TA貢獻1815條經(jīng)驗 獲得超6個贊
find_one
應該在集合上調(diào)用該方法
{'bin-data': Binary(practicedata)}
是查找文檔的查詢
coll.find_one({'bin-data': Binary(practicedata)})
女巫的意思是:在集合中查找一個文檔coll
,其中bin-data
等于Binary(practicedata)
添加回答
舉報
0/150
提交
取消