pymongo 增刪改查基本操作彙總

2021-09-07 23:22:40 字數 3175 閱讀 7132

mongo_conn = mongo['user']

a.查詢所有:mongo_conn.find({})

b.單條記錄查詢:mongo_conn.find_one()

c.多條記錄查詢:

# 對於多條資料的查詢,我們可以使用find()方法,例如在這裡查詢年齡為20的資料,示例如下:

results = mongo_conn.find()  # 返回結果是cursor型別,相當於乙個生成器,我們需要遍歷取到所有的結果,每乙個結果都是字典型別。

for result in results:

print(result)

d.條件規則查詢

# 如果要查詢年齡大於20的資料,則寫法如下:results = collection.find(})

# 在這裡將比較符號歸納如下表:

$lt小於}

$gt大於}

$lte小於等於}

$gte大於等於}

$ne不等於}

$in在範圍內}

$nin不在範圍內}

# 在這裡將一些功能符號再歸類如下:

$regex匹配正則}name以m開頭

$exists屬性是否存在}name屬性存在

$type型別判斷}age的型別為int

$mod數字模操作}年齡模5餘0

$text文字查詢}text型別的屬性中包含mike字串

$where高階條件查詢自身粉絲數等於關注數

要統計查詢結果有多少條資料,可以呼叫count()方法,

a.如統計所有資料條數:

count = mongo_conn.find().count()

b. 或者統計符合某個條件的資料:

count = mongo_conn.find().count()

a.可以呼叫sort方法,傳入排序的字段及公升降序標誌即可,

示例如下:

results = mongo_conn.find().sort('name', pymongo.ascending)

b. 偏移,可能想只取某幾個元素,在這裡可以利用skip()方法偏移幾個位置,比如偏移2,就忽略前2個元素,得到第三個及以後的元素。

results = mongo_conn.find().sort('name', pymongo.ascending).skip(2)

c. 另外還可以用limit()方法指定要取的結果個數,示例如下:

results = mongo_conn.find().sort('name', pymongo.ascending).skip(2).limit(2)

# 值得注意的是,在資料庫數量非常龐大的時候,如千萬、億級別,最好不要使用大的偏移量來查詢資料,很可能會導致記憶體溢位,可以使用類似find(}) 這樣的方法來查詢,記錄好上次查詢的_id。

a. 對於資料更新可以使用update()方法,指定更新的條件和更新後的資料即可,例如:

condition =

student = mongo_conn.find_one(condition)

student['age'] = 25

result = mongo_conn.update(condition, student)    #執行結果: 

# 返回結果是字典形式,ok即代表執行成功,nmodified代表影響的資料條數。

b 另外update()方法其實也是官方不推薦使用的方法,在這裡也分了update_one()方法和update_many()方法,用法更加嚴格,

# 第二個引數需要使用$型別操作符作為字典的鍵名,我們用示例感受一下。

condition =

student = mongo_conn.find_one(condition)

student['age'] = 26

result = mongo_conn.update_one(condition, ) # 其返回結果是updateresult型別,然後呼叫matched_count和modified_count屬性分別可以獲得匹配的資料條數和影響的資料條數。

print(result.matched_count, result.modified_count)

# 我們再看乙個例子:

condition = }

result = mongo_conn.update_one(condition, })  # 在這裡我們指定查詢條件為年齡大於20,然後更新條件為},執行之後會將第一條符合條件的資料年齡加1。

# 如果呼叫update_many()方法,則會將所有符合條件的資料都更新,示例如下:

condition = }

result = mongo_conn.update_many(condition, })  # 所有匹配到的資料都會被更新。

c. replace_one()

student = mongo_conn.replace_one(, ) #更改儲存鍵名

a. 刪除操作比較簡單,直接呼叫remove()方法指定刪除的條件即可,符合條件的所有資料均會被刪除,示例如下:

result = mongo_conn.remove()  # 執行結果: 

b. delete_one()和delete_many()方法:

result = mongo_conn.delete_one()

result = mongo_conn.delete_many(})

print(result.deleted_count)

# delete_one()即刪除第一條符合條件的資料,delete_many()即刪除所有符合條件的資料,返回結果是deleteresult型別,

# 可以呼叫deleted_count屬性獲取刪除的資料條數。

a.find_one_and_delete

result = mongo_conn.find_one_and_delete()  # 查詢第一條並刪除

b.find_one_and_replace

result = mongo_conn.find_one_and_replace(, )  # 查詢第一條並替換

c.find_one_and_update

result = mongo_conn。find_one_and_update(, , '$set': }) #執行結果: }

增刪改查基本操作

增加 建立資料庫 create database database name 建立資料庫中的表單 create table table name 列1 資料型別,列2 資料型別,列3 資料型別 往表單中新增資料 insert into table name values 1 2 3 刪除 刪除資料庫...

mongodb增刪改查基本操作

mongodb資料庫基本用法 查詢 1.條件操作符的使用,日期格式的查詢,長度 db.getcollection interougeproduct find interougestockmaps 2.查詢列只顯示指定字段 1 表示展示,0表示隱藏 db.getcollection interouge...

mysql基本操作 增刪改查

增加 insertinsert into 表名 欄位1,欄位2,values 值1,值2,insert into students class id,name,gender,score values 2,張三 m 80 3,大寶 f 90 可以一次新增一條,也可以一次新增多條,每條記錄都是由 包含的...