標籤:delete pre import imp 字串 字元 pytho port 地址
在python中使用pymongo串連mongodb資料庫.
基本代碼如下:
from pymongo import MongoClientclient = MongoClient(‘127.0.0.1‘, 27017) # mongodb的地址db_name = ‘myfirstmongo‘ # 資料庫的名字db = client[db_name] # 現在db就是這個資料庫了collection = db[‘testone‘] # ‘testone‘是集合的名字,現在collection就是我們要用的集合了
查詢一條資料和簡單的分頁操作:
import jsonfrom bson import json_util as jsonbdef get_data_by_key(key): item = collection.find({"key":key}) # 直接用集合查詢,find是mongo的方法 # print item # 查詢返回的item是一個對象,列印出來是<pymongo.cursor.Cursor object at 0x7f5d9bbc6f50> info = jsonb.dumps(item) # 使用bjson將對象轉換成可讀的形式,現在的info是str類型 data = json.loads(info) # 使用json將字串轉換成python的相應類型,這裡data是list列表 return datadef get_page_data(page): page_len = 20 # page_len是一頁的長度,也可以作為參數傳進來 skp = (int(page)-1)*page_len # skip是為了只查詢某一頁的,跳過之前的資料 item = collection.find().skip(skp).limit(page_len) # 從skp開始,查詢page_len條資料 info = jsonb.dumps(item) # 處理資料 data = json.loads(info) # 處理資料
return data
get_data_by_key是通過某一個條件查詢,也可以多條件查詢.要注意key的資料類型.
增刪改等操作與上面過程類似,只需修改collection對應的操作函數.
刪除資料:collection.find_one_and_delete({‘key‘:key}),或者collection.remove({‘key‘:key})
謹慎使用remove(),她的括弧裡為空白時,會刪掉集合裡面的所有資料;
增加資料:collection.insert({‘key‘:‘123‘,‘msg‘:‘test‘}),也可插入多條,將多條資料放入列表中,將列表傳入insert()即可;
更新資料:collection.update({‘key‘:‘123‘},{‘msg‘:‘new‘},True,True),
update參數含義:第一個是查詢參數,第二個是要更新的內容,第三個是決定在沒有查到該條資料時是否建立,第四個是查詢到多條資料時是否都要更改;
更新資料還可以使用修改器,這裡不做記錄了.
mongodb與python隨手記