本文實(shí)例講述了Python pymongo模塊常用操作。分享給大家供大家參考,具體如下:
環(huán)境:pymongo3.0.3,python3
以下是我整理的一些關(guān)于pymongo的操作,網(wǎng)上很多是用pymongo.Connecion()去連接數(shù)據(jù)庫(kù)的,但是我這里連接一直提示沒有這個(gè)包,如果大家有什么解決方案或者其他需要補(bǔ)充的,也歡迎告訴我。
一、導(dǎo)入pymongo,使用MongClient連接數(shù)據(jù)庫(kù),連接到myinfo數(shù)據(jù)庫(kù)
import pymongoclient= pymongo.MongoClient("127.0.0.1",27017)db=client.myinfo 二、insert,insert_one()只能插入一條數(shù)據(jù),插入多條數(shù)據(jù)的格式是db.user.insert([{條數(shù)1},{條數(shù)2}]),一定要加[],否則只會(huì)添加進(jìn)去第一條(user是一個(gè)集合,除了用db["collection"]外也可以用db.collection來對(duì)集合進(jìn)行操作
db["user"].insert_one({"name":"zhao"})db["user"].insert_one({"name":"zhou","age":"5"})db["user"].insert([{"name":"wu","age":"6"},{"name":"zheng","age":"7"}])*insert還可以用下面這種方式插入,將數(shù)據(jù)獨(dú)立出來
data = [ {"name":"zhao","rank":"1"}, {"name":"qian","rank":"2"}, {"name":"sun","rank":"3"}, {"name":"li","rank":"4"}, ]db.user.insert(data)三、update,$set:更新操作,multi=True:是否對(duì)查詢到的全部數(shù)據(jù)進(jìn)行操作,upsert=True:如果找不到查詢的結(jié)果是否插入一條數(shù)據(jù)
db.user.update_one({"age":"2"},{"$set":{"name":"qian","age":2}})db.user.update({"name":"sun"},{"$set":{"name":"qian"}},upsert=True)*update_one也是只能對(duì)一條數(shù)據(jù)進(jìn)行操作,$set是update操作的$操作符,也可以用$inc或$push,前兩個(gè)操作速度差不多,$push操作速度較慢。
四、remove,如果后面()內(nèi)不填寫內(nèi)容,就是將整個(gè)表清空了,db.user.find_one_and_delete()也是刪除的意思
db.user.remove({"name":"wu"})db.user.find_one_and_delete({"name":"zheng"}) 五、db.user.count(),統(tǒng)計(jì)查詢出的條數(shù),()內(nèi)不填寫東西,就是統(tǒng)計(jì)出該集合下所有的數(shù)據(jù)
print(db.user.count({"age":"6"}))六、打印出查詢結(jié)果
from bson import json_util as jsonbprint(jsonb.dumps(list(db.user.find({"name":"wu"}))))print(db.user.find({"name":"wu"}))可以看到上面兩種方式,不轉(zhuǎn)換與轉(zhuǎn)換后的結(jié)果對(duì)比如下:
*jsonb.dumps()將查詢出來的結(jié)果轉(zhuǎn)換成了可以讀的list的格式,否則打印出來的是<pymongo.cursor.Cursor object at 0x02096DF0>這種格式的
遍歷col1=db.user.find()查詢到的所有結(jié)果,以及它key=name的value
for i in col1: print(i) print(i["name"])
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
新聞熱點(diǎn)
疑難解答
圖片精選