pymongo的常用操作


環境:pymongo3.0.3,python3

以下是我整理的一些關於pymongo的操作,網上很多是用pymongo.Connecion()去連接數據庫的,但是我這里連接一直提示沒有這個包,如果大家有什么解決方案或者其他需要補充的,也歡迎告訴我。  
 
一、導入pymongo,使用MongClient連接數據庫,連接到myinfo數據庫
import pymongo
client= pymongo.MongoClient("127.0.0.1",27017)
db=client.myinfo
 
         
二、insert,insert_one()只能插入一條數據,插入多條數據的格式是db.user.insert([{條數1},{條數2}]),一定要加[],否則只會添加進去第一條(user是一個集合,除了用db["collection"]外也可以用db.collection來對集合進行操作
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還可以用下面這種方式插入,將數據獨立出來
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:是否對查詢到的全部數據進行操作,upsert=True:如果找不到查詢的結果是否插入一條數據

 
         
db.user.update_one({"age":"2"},{"$set":{"name":"qian","age":2}})
db.user.update({"name":"sun"},{"$set":{"name":"qian"}},upsert=True)
*update_one也是只能對一條數據進行操作,$set是update操作的$操作符,也可以用$inc或$push,前兩個操作速度差不多,$push操作速度較慢。
四、remove,如果后面()內不填寫內容,就是將整個表清空了,db.user.find_one_and_delete()也是刪除的意思

db.user.remove({"name":"wu"})
db.user.find_one_and_delete({"name":"zheng"})
五、db.user.count(),統計查詢出的條數,()內不填寫東西,就是統計出該集合下所有的數據

print(db.user.count({"age":"6"}))
六、打印出查詢結果
 
         
 
         
from bson import json_util as jsonb

print(jsonb.dumps(list(db.user.find({"name":"wu"}))))
print(db.user.find({"name":"wu"}))
可以看到上面兩種方式,不轉換與轉換后的結果對比如下:

 
         
 
         
*jsonb.dumps()將查詢出來的結果轉換成了可以讀的list的格式,否則打印出來的是<pymongo.cursor.Cursor object at 0x02096DF0>這種格式的
 
         
遍歷col1=db.user.find()查詢到的所有結果,以及它key=name的value
for i in col1:
print(i)
print(i["name"])
 
        


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM