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中的异常处理简明介绍
Apr 13 Python
python中urllib.unquote乱码的原因与解决方法
Apr 24 Python
Python实现完整的事务操作示例
Jun 20 Python
彻底搞懂Python字符编码
Jan 23 Python
对python条件表达式的四种实现方法小结
Jan 30 Python
Python split() 函数拆分字符串将字符串转化为列的方法
Jul 16 Python
Python GUI编程学习笔记之tkinter事件绑定操作详解
Mar 30 Python
Pytorch转tflite方式
May 25 Python
python实现AdaBoost算法的示例
Oct 03 Python
python不同版本的_new_不同点总结
Dec 09 Python
详解Python中下划线的5种含义
Jul 15 Python
深入理解pytorch库的dockerfile
Jun 10 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
php去除重复字的实现代码
2011/09/16 PHP
PHP常用的三种设计模式
2017/02/17 PHP
详解PHP序列化和反序列化原理
2018/01/15 PHP
js 页面输出值
2008/11/30 Javascript
FireFox下XML对象转化成字符串的解决方法
2011/12/09 Javascript
js实现文章文字大小字号功能完整实例
2014/11/01 Javascript
解决jQuery uploadify在非IE核心浏览器下无法上传
2015/08/05 Javascript
jQuery学习笔记之回调函数
2016/08/15 Javascript
Actionscript与javascript交互实例程序(修改)
2016/09/22 Javascript
jQuery Validate 数组 全部验证问题
2017/01/12 Javascript
jQuery插件开发发送短信倒计时功能代码
2017/05/09 jQuery
js canvas实现放大镜查看图片功能
2017/06/08 Javascript
vue子父组件通信的实现代码
2017/07/09 Javascript
Angular4开发解决跨域问题详解
2017/08/28 Javascript
基于Cookie常用操作以及属性介绍
2017/09/07 Javascript
讲解vue-router之什么是编程式路由
2018/05/28 Javascript
写gulp遇到的ES6问题详解
2018/12/03 Javascript
使用Sonarqube扫描Javascript代码的示例
2018/12/26 Javascript
[50:28]LGD女子学院第三期 DOTA2复仇之魂教学
2013/12/24 DOTA
python中关于时间和日期函数的常用计算总结(time和datatime)
2013/03/08 Python
Python获取apk文件URL地址实例
2013/11/01 Python
Python Pandas 对列/行进行选择,增加,删除操作
2020/05/17 Python
HTML5在微信内置浏览器下右上角菜单的调整字体导致页面显示错乱的问题
2021/01/19 HTML / CSS
英国在线药房和在线药剂师:Chemist 4 U
2020/01/05 全球购物
写自荐信三大法宝
2014/01/24 职场文书
超市促销活动方案
2014/03/05 职场文书
房屋出售授权委托书
2014/10/12 职场文书
党性分析自查总结
2014/10/14 职场文书
专业技术人员年度考核评语
2014/12/31 职场文书
导游词300字
2015/02/13 职场文书
2015年保送生自荐信
2015/03/24 职场文书
2016年社区党支部公开承诺书
2016/03/25 职场文书
vue 实现上传组件
2021/05/31 Vue.js
MySQL单表千万级数据处理的思路分享
2021/06/05 MySQL
python字符串的多行输出的实例详解
2021/06/08 Python
OpenCV 图像梯度的实现方法
2021/07/25 Python