1. 程式人生 > >mongodb與python隨手記

mongodb與python隨手記

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隨手記