Python3.x中使用MongoDB資料庫的簡單方法-------PyCharm
為了能夠PyCharm中使用MongoDB,需要先引入MongoDB第三方庫,具體的引入方法如下:
第一:先配置MongoDB外掛
1 開啟PyCharm,單擊 左上角“file”→“settings” ,如下圖
2 Plugins-->Browse repositories-->Mongo-->Install
第二步:加入包:pymongo
第三步:開始練習
#引入MonogoClient包 from pymongo import MongoClient from bson.objectid import ObjectId #連線資料庫 #資料庫需要提供一個地址和埠即可 conn=MongoClient('localhost',27017) #conn=MongoClient('Mongodb://localhost:27017/') #建立資料庫 #Mongodb不需要提前建立好資料庫,而是直接使用,如果發現沒有則自動建立 #會建立一個testDB的資料庫,但是在沒有插入資料的時候,該資料庫在管理工具裡面看不到 db=conn.testdb #插入資料 #單條記錄插入 db.col.insert({'name':'aa','province':'SX','age':25}) #多條記錄插入 db.col.insert([ {"name":'yanying','province':'江蘇','age':25}, {"name":'張三','province':'浙江','age':24}, {"name":'張三1','province':'浙江1','age':25}, {"name":'張三2','province':'浙江2','age':26}, {"name":'張三3','province':'浙江3','age':28}, ]) #查詢資料 #使用find_one()來查詢一條記錄 db.col.find_one() #查詢所有 #如果需要查詢出所有的記錄,則可以使用db.col.find()。但是查出來的十一個結果資源集 for item in db.col.find(): print(item) #條件查詢 for item in db.col.find({'name':"yanying"}): print(item) #統計查詢 #上面的程式碼可以統計出所有的記錄數量 db.col.find().count() #根據_id查詢資料 #_id是mongodb自動生成的id,其型別為ObjectId,想要使用就需要轉換型別 #需要引入庫:ObjectId #這樣就可以直接使用_id進行查詢了 collection.find_one({'_id':ObjectId('592550e5d92fac0b8c449f87')}) #結果排序 #只需要將排序的欄位放入sort方法即可,Mongodb預設為升序 db.col.find().sort('age') #更新資料 #更新資料只需要一個條件和需要更新的資料即可 db.col.update({'_id':ObjectId('592550e5d92fac0b8c449f87')},{'$set':{'name':'王二麻子'}}) #刪除資料 #資料刪除使用remove()方法,如果方法帶條件,則刪除指定條件的資料,否則刪除全部 #刪除name為王二麻子的使用者 db.col.remove({'name':'王二麻子'}) #刪除全部資料(慎用) #db.col.remove()
第四步:執行
在執行中如果出現如下錯誤:
是因為在PyCharm中呼叫MongoDB資料庫時,由於沒有啟動本地的MongoDB服務引起。
解決方案:
首先通過win+R開啟命令列視窗,輸入cmd(如下圖)
開啟命令列視窗
用cd命令開啟mongod.exe所在的目錄,並輸入mongod.exe --nojournal --dbpath .(注意–dbpath後面有個點)
如果出現‘ [initandlisten] waiting for connections on port 27017’提示說明伺服器已經啟動成功
重新在PyCharm中執行程式(執行成功)
{'_id': ObjectId('5be7ff56ec882c935834bcad'), 'name': 'aa', 'province': 'SX', 'age': 25}
{'_id': ObjectId('5be7ff57ec882c935834bcae'), 'name': 'yanying', 'province': '江蘇', 'age': 25}
{'_id': ObjectId('5be7ff57ec882c935834bcaf'), 'name': '張三', 'province': '浙江', 'age': 24}
{'_id': ObjectId('5be7ff57ec882c935834bcb0'), 'name': '張三1', 'province': '浙江1', 'age': 25}
{'_id': ObjectId('5be7ff57ec882c935834bcb1'), 'name': '張三2', 'province': '浙江2', 'age': 26}
{'_id': ObjectId('5be7ff57ec882c935834bcb2'), 'name': '張三3', 'province': '浙江3', 'age': 28}
{'_id': ObjectId('5be7ff57ec882c935834bcae'), 'name': 'yanying', 'province': '江蘇', 'age': 25}