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 14 Python
Python MySQLdb Linux下安装笔记
May 09 Python
Python冒泡排序注意要点实例详解
Sep 09 Python
python利用OpenCV2实现人脸检测
Apr 16 Python
Python实现计算圆周率π的值到任意位的方法示例
May 08 Python
Python 用matplotlib画以时间日期为x轴的图像
Aug 06 Python
pygame实现俄罗斯方块游戏(基础篇3)
Oct 29 Python
如何基于python实现画不同品种的樱花树
Jan 03 Python
Python类继承和多态原理解析
Feb 05 Python
Python使用configparser库读取配置文件
Feb 22 Python
Python 创建守护进程的示例
Sep 29 Python
Python matplotlib绘制条形统计图 处理多个实验多组观测值
Apr 21 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读取MySQL数据代码
2008/06/05 PHP
基于PHP一些十分严重的缺陷详解
2013/06/03 PHP
PHP cURL初始化和执行方法入门级代码
2015/05/28 PHP
PHP性能分析工具xhprof的安装使用与注意事项
2017/12/19 PHP
一段利用WSH修改和查看IP配置的代码
2008/05/11 Javascript
Js 导出table内容到Excel的简单实例
2013/11/19 Javascript
js动态添加表格数据使用insertRow和insertCell实现
2014/05/22 Javascript
jQuery form插件之formDdata参数校验表单及验证后提交
2016/01/23 Javascript
jQuery1.9+中删除了live以后的替代方法
2016/06/17 Javascript
基于AngularJS实现iOS8自带的计算器
2016/09/12 Javascript
Bootstrap里的文件分别代表什么意思及其引用方法
2017/05/01 Javascript
原生JS+Canvas实现五子棋游戏
2020/05/28 Javascript
详解EasyUi控件中的Datagrid
2017/08/23 Javascript
ES6中javascript实现函数绑定及类的事件绑定功能详解
2017/11/08 Javascript
layerUI下的绑定事件实例代码
2018/08/17 Javascript
Vue项目使用localStorage+Vuex保存用户登录信息
2019/05/27 Javascript
layui 点击重置按钮, select 并没有被重置的解决方法
2019/09/03 Javascript
layui扩展上传组件模拟进度条的方法
2019/09/23 Javascript
js实现无限层级树形数据结构(创新算法)
2020/02/27 Javascript
Python内置的字符串处理函数整理
2013/01/29 Python
Python使用django搭建web开发环境
2017/06/09 Python
Python OpenCV获取视频的方法
2018/02/28 Python
python使用jieba实现中文分词去停用词方法示例
2018/03/11 Python
pytorch 获取tensor维度信息示例
2020/01/03 Python
Python3和PyCharm安装与环境配置【图文教程】
2020/02/14 Python
Django自带的用户验证系统实现
2020/12/18 Python
Mountain Hardwear官网:攀岩服装和户外装备
2019/09/26 全球购物
经贸日语毕业生自荐信
2013/11/03 职场文书
工作室成员个人发展规划范文
2014/01/24 职场文书
自我评价的范文
2014/02/02 职场文书
《花木兰》教学反思
2014/04/09 职场文书
活动总结怎么写啊
2014/05/07 职场文书
办公室班子四风问题对照检查材料
2014/10/04 职场文书
《爱的教育》读书心得
2014/11/08 职场文书
会计工作态度自我评价
2015/03/06 职场文书
PostgreSQL存储过程实用脚本(二):创建函数入门
2021/04/05 PostgreSQL