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中使用Queue和Condition进行线程同步的方法
Jan 19 Python
python判断字符串编码的简单实现方法(使用chardet)
Jul 01 Python
Python实现删除文件中含“指定内容”的行示例
Jun 09 Python
python 3.6 +pyMysql 操作mysql数据库(实例讲解)
Dec 20 Python
python线程池threadpool实现篇
Apr 27 Python
Python定时任务APScheduler的实例实例详解
Jul 22 Python
Python计算两个矩形重合面积代码实例
Sep 16 Python
python用quad、dblquad实现一维二维积分的实例详解
Nov 20 Python
Python日期格式和字符串格式相互转换的方法
Feb 18 Python
python 给图像添加透明度(alpha通道)
Apr 09 Python
解决安装新版PyQt5、PyQT5-tool后打不开并Designer.exe提示no Qt platform plugin的问题
Apr 24 Python
pandas to_excel 添加颜色操作
Jul 14 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实现的通用图片处理类
2015/03/24 PHP
javascript下过滤数组重复值的代码
2007/09/10 Javascript
jquery+json实现数据列表分页示例代码
2013/11/15 Javascript
JS仿百度搜索自动提示框匹配查询功能
2013/11/21 Javascript
JS调试必备的5个debug技巧
2014/03/07 Javascript
深入分析Cookie的安全性问题
2015/03/01 Javascript
js带点自动图片轮播幻灯片特效代码分享
2015/09/07 Javascript
JavaScript函数节流和函数防抖之间的区别
2017/02/15 Javascript
在JS中如何把毫秒转换成规定的日期时间格式实例
2017/05/11 Javascript
从源码看angular/material2 中 dialog模块的实现方法
2017/10/18 Javascript
对vue中v-on绑定自定事件的实例讲解
2018/09/06 Javascript
ionic+html5+API实现双击返回键退出应用
2019/09/17 Javascript
全局安装 Vue cli3 和 继续使用 Vue-cli2.x操作
2020/09/08 Javascript
[14:00]DOTA2国际邀请赛史上最长大战 赛后专访B神
2013/08/10 DOTA
Python的Twisted框架上手前所必须了解的异步编程思想
2016/05/25 Python
python中的格式化输出用法总结
2016/07/28 Python
利用Python在一个文件的头部插入数据的实例
2018/05/02 Python
Python基于最小二乘法实现曲线拟合示例
2018/06/14 Python
对pycharm代码整体左移和右移缩进快捷键的介绍
2018/07/16 Python
判断python字典中key是否存在的两种方法
2018/08/10 Python
Python推导式简单示例【列表推导式、字典推导式与集合推导式】
2018/12/04 Python
python3爬虫怎样构建请求header
2018/12/23 Python
使用python批量化音乐文件格式转换的实例
2019/01/09 Python
python opencv实现图像边缘检测
2019/04/29 Python
Python测试模块doctest使用解析
2019/08/10 Python
使用Tensorflow将自己的数据分割成batch训练实例
2020/01/20 Python
如何使用selenium和requests组合实现登录页面
2020/02/03 Python
解决方案设计综合面试题
2015/08/31 面试题
大学军训感想
2014/02/12 职场文书
毕业生写求职信的要点
2014/03/04 职场文书
幼儿园春季开学寄语
2014/04/03 职场文书
机关党建工作汇报材料
2014/08/20 职场文书
四风问题对照检查整改措施思想报告
2014/10/05 职场文书
2014年商场工作总结
2014/11/22 职场文书
pytorch 中autograd.grad()函数的用法说明
2021/05/12 Python
Axios代理配置及封装响应拦截处理方式
2022/04/07 Vue.js