Python pymongo模块常用操作分析


Posted in Python onSeptember 01, 2018

本文实例讲述了Python pymongo模块常用操作。分享给大家供大家参考,具体如下:

环境:pymongo3.0.3,python3

以下是我整理的一些关于pymongo的操作,网上很多是用pymongo.Connecion()去连接数据库的,但是我这里连接一直提示没有这个包,如果大家有什么解决方案或者其他需要补充的,也欢迎告诉我。

一、导入pymongo,使用MongClient连接数据库,连接到myinfo数据库

import pymongo
client= pymongo.MongoClient("127.0.0.1",27017)
db=client.myinfo

二、insertinsert_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"}))

可以看到上面两种方式,不转换与转换后的结果对比如下:

Python pymongo模块常用操作分析

*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"])

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python迭代用法实例教程
Sep 08 Python
Python 出现错误TypeError: ‘NoneType’ object is not iterable解决办法
Jan 12 Python
Python配置mysql的教程(推荐)
Oct 13 Python
Python中类的初始化特殊方法
Dec 01 Python
Django中的Signal代码详解
Feb 05 Python
Python视频爬虫实现下载头条视频功能示例
May 07 Python
python 将print输出的内容保存到txt文件中
Jul 17 Python
FFrpc python客户端lib使用解析
Aug 24 Python
python 正则表达式参数替换实例详解
Jan 17 Python
使用Python打造一款间谍程序的流程分析
Feb 21 Python
python 在右键菜单中加入复制目标文件的有效存放路径(单斜杠或者双反斜杠)
Apr 08 Python
安装不同版本的tensorflow与models方法实现
Feb 20 Python
Python实现提取XML内容并保存到Excel中的方法
Sep 01 #Python
python使用webdriver爬取微信公众号
Aug 31 #Python
python爬取微信公众号文章
Aug 31 #Python
Python单向链表和双向链表原理与用法实例详解
Aug 31 #Python
Python使用Flask-SQLAlchemy连接数据库操作示例
Aug 31 #Python
浅谈Python traceback的优雅处理
Aug 31 #Python
python梯度下降法的简单示例
Aug 31 #Python
You might like
ThinkPHP2.x防范XSS跨站攻击的方法
2015/09/25 PHP
总结PHP中DateTime的常用方法
2016/08/11 PHP
PHP巧妙利用位运算实现网站权限管理的方法
2017/03/12 PHP
Laravel源码解析之路由的使用和示例详解
2018/09/27 PHP
Add a Table to a Word Document
2007/06/15 Javascript
仿校内登陆框,精美,给那些很厉害但是没有设计天才的程序员
2008/11/24 Javascript
JS操作HTML自定义属性的方法
2015/02/10 Javascript
js实现索引图片切换效果
2015/11/21 Javascript
javascript实现拖动元素交换位置
2015/11/29 Javascript
详解vuelidate 对于vueJs2.0的验证解决方案
2017/03/09 Javascript
关于vue中的ajax请求和axios包问题
2018/04/19 Javascript
Vue+Element UI+Lumen实现通用表格分页功能
2019/02/02 Javascript
vue实现的微信机器人聊天功能案例【附源码下载】
2019/02/18 Javascript
vue实现随机验证码功能(完整代码)
2019/12/10 Javascript
[01:02:34]TFT vs VGJ.T Supermajor 败者组 BO3 第二场 6.5
2018/06/06 DOTA
[38:31]完美世界DOTA2联赛PWL S3 Magma vs GXR 第一场 12.13
2020/12/17 DOTA
Python自动化运维和部署项目工具Fabric使用实例
2016/09/18 Python
Django框架实现逆向解析url的方法
2018/07/04 Python
Python GUI自动化实现绕过验证码登录
2020/01/10 Python
Python while循环使用else语句代码实例
2020/02/07 Python
python计算波峰波谷值的方法(极值点)
2020/02/18 Python
Python实现GIF图倒放
2020/07/16 Python
HTML5新增加的功能详解
2016/09/05 HTML / CSS
教师自我评价范文
2013/12/16 职场文书
校园餐饮创业计划书
2014/01/10 职场文书
教育科研先进个人材料
2014/01/26 职场文书
大学生创业策划书
2014/02/02 职场文书
九一八事变演讲稿
2014/09/05 职场文书
政法干警核心价值观心得体会
2014/09/11 职场文书
2014年敬老院工作总结
2014/12/08 职场文书
幼儿园教师自我评价
2015/03/04 职场文书
公司仓管员岗位职责
2015/04/01 职场文书
个人欠条范本
2015/07/03 职场文书
2016国庆节67周年寄语
2015/12/07 职场文书
《天使的翅膀》读后感3篇
2019/12/20 职场文书
Nginx实现负载均衡的项目实践
2022/03/18 Servers