本文实例讲述了Python pymongo模块常用操作。分享给大家供大家参考,具体如下:
环境:pymongo3.0.3,python3
以下是我整理的一些关于pymongo的操作,网上很多是用pymongo.Connecion()
去连接数据库的,但是我这里连接一直提示没有这个包,如果大家有什么解决方案或者其他需要补充的,也欢迎告诉我。
一、导入pymongo,使用MongClient连接数据库,连接到myinfo数据库
1
2
3
|
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
来对集合进行操作
1
2
3
|
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还可以用下面这种方式插入,将数据独立出来
1
2
3
4
5
6
7
|
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:如果找不到查询的结果是否插入一条数据
1
2
|
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()
也是删除的意思
1
2
|
db.user.remove({ "name" : "wu" })
db.user.find_one_and_delete({ "name" : "zheng" })
|
五、db.user.count()
,统计查询出的条数,()内不填写东西,就是统计出该集合下所有的数据
1
|
print (db.user.count({ "age" : "6" }))
|
六、打印出查询结果
1
2
3
|
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
1
2
3
|
for i in col1:
print (i)
print (i[ "name" ])
|
希望本文所述对大家Python程序设计有所帮助。
原文链接:https://www.cnblogs.com/meitian/p/4623217.html