国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

詳解Python3操作Mongodb簡明易懂教程

2020-01-04 17:14:21
字體:
來源:轉載
供稿:網友

連接數據庫

鏈接數據庫需要提供一個地址和接口即可。首先還是要導入包。

from pymongo import MongoClientconn = MongoClient('localhost',27017)

當然,你可以使用如下寫法:

conn = MongoClient('mongodb://localhost:27017/')

創建數據庫

mongodb不需要提前創建好數據庫,而是直接使用,如果發現沒有則自動創建。

db = conn.testdb

上面的語句,會創建一個testdb的數據庫。但是,在沒有插入數據的時候,該數據庫在管理工具里面你是看不到的(不顯示)。

插入數據

首先第一步我們先插入一條數據瞧瞧。

單條記錄插入

from pymongo import MongoClientconn = MongoClient('mongodb://localhost:27017/')db = conn.testdbdb.col.insert({"name":'yanying','province':'江蘇','age':25})

注意: 接下來的操作中會忽略掉數據庫連接操作,直接寫核心代碼,請自行補上。

python控制臺什么都沒有發生,這就是成功的意思。使用管理工具查看數據庫記錄,的確包含了一條數據。

Python3,Mongodb,python3連接mongodb,Python3操作Mongodb

多條記錄插入

Mongodb一次也可以插入多條數據

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()

上面的語句可以查詢出一條mongodb記錄。記錄中多出來的_id是Mongodb自動生成的唯一值。

 

復制代碼 代碼如下:

{'_id': ObjectId('5925351ad92fac3250b9ae3f'), 'name': 'yanying', 'province': '江蘇', 'age': 25}

 

我們再隨便插入點兒數據供下面操作使用。(省略幾萬字)

查詢所有

如果我們需要查詢出所有的記錄,則可以使用db.col.find()但是查出來的是一個結果資源集。

我們可以使用for來列出所有記錄。

for item in db.col.find(): print(item)

這樣可以獲取所有記錄。

{'_id': ObjectId('5925351ad92fac3250b9ae3f'), 'name': 'yanying', 'province': '江蘇', 'age': 25}{'_id': ObjectId('592550e5d92fac0b8c449f87'), 'name': 'zhangsan', 'province': '北京', 'age': 29}{'_id': ObjectId('592550f6d92fac3548c20b1a'), 'name': 'lisi', 'province': '上海', 'age': 22}{'_id': ObjectId('59255118d92fac43dcb1999a'), 'name': '王二麻', 'province': '廣東', 'age': 30}

條件查詢

只要將查詢條件當做參數塞入即可篩選數據。

for item in db.col.find({'name':"yanying"}): print(item)

查詢結果

 

復制代碼 代碼如下:

{'_id': ObjectId('5925351ad92fac3250b9ae3f'), 'name': 'yanying', 'province': '江蘇', 'age': 25}

 

當然還可以查詢小于某個值的記錄

for item in db.col.find({"age":{"$lt":25}}): print(item)

或者大于某個值的記錄

for item in db.col.find({"age":{"$gt":25}}): print(item)

統計查詢

上面的代碼可以統計出所有的記錄數量

db.col.find().count() // 4

或者加點兒條件

db.col.find({"age":{"$gt":25}}).count() //2

根據_id查詢記錄

_id是mongodb自動生成的id,其類型為ObjectId,想要使用就需要轉換類型。

python3中提供了該方法,不過需要導入一個庫。

from bson.objectid import ObjectId

這樣就可以直接使用_id進行查詢啦。

collection.find_one({'_id':ObjectId('592550e5d92fac0b8c449f87')})

結果排序

只要將需要排序的字段放入sort方法即可,Mongodb默認為升序

db.col.find().sort("age")

不過你也可以加一些參數去改變排序的方式。比如倒序,不過要記得先導入pymongo庫

import pymongodb.col.find().sort("UserName",pymongo.DESCENDING)

你還可以讓他升序,盡管默認如此

for item in db.col.find().sort('age',pymongo.ASCENDING): print(item)

更新數據

更新數據很簡單,只需要一個條件和需要更新的數據即可

 

復制代碼 代碼如下:

db.col.update({'_id':ObjectId('59255118d92fac43dcb1999a')},{'$set':{'name':'王二麻33333'}})

 

結果如下:王二麻變成了王二麻33333

 

復制代碼 代碼如下:

{'_id': ObjectId('59255118d92fac43dcb1999a'), 'name': '王二麻33333', 'province': '廣東', 'age': 30}

 

刪除數據

刪除數據使用remove()方法,如果方法帶條件,則刪除指定條件數據,否則刪除全部

刪除name為王二麻33333的用戶。

db.col.remove({'name':'王二麻33333'})

刪除全部數據(慎用)

db.col.remove()

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宁国市| 贵德县| 衡阳市| 长葛市| 双江| 根河市| 东辽县| 兴仁县| 会同县| 全椒县| 广西| 福建省| 正蓝旗| 英超| 隆化县| 阿鲁科尔沁旗| 娄底市| 康平县| 玛多县| 固镇县| 甘孜县| 定陶县| 乌兰察布市| 徐汇区| 许昌市| 平果县| 建昌县| 建湖县| 平远县| 图木舒克市| 凤翔县| 盖州市| 武清区| 大石桥市| 阳泉市| 邯郸县| 祁东县| 陆丰市| 德江县| 志丹县| 温泉县|