mongodb與python隨手記
阿新 • • 發佈:2017-05-12
rst 手記 bbc upd 數據庫 基本 可讀的 方法 代碼
在python中使用pymongo連接mongodb數據庫.
基本代碼如下:
from pymongo import MongoClient
client = MongoClient(‘127.0.0.1‘, 27017) # mongodb的地址
db_name = ‘myfirstmongo‘ # 數據庫的名字
db = client[db_name] # 現在db就是這個數據庫了
collection = db[‘testone‘] # ‘testone‘是集合的名字,現在collection就是我們要用的集合了
查詢一條數據和簡單的分頁操作:
import json
from bson import json_util as jsonb
def 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 data
def 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隨手記