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对SQLite数据库操作
Apr 06 Python
python模块之time模块(实例讲解)
Sep 13 Python
详解python字节码
Feb 07 Python
TensorFlow实现Softmax回归模型
Mar 09 Python
使用pandas将numpy中的数组数据保存到csv文件的方法
Jun 14 Python
详解python单元测试框架unittest
Jul 02 Python
Win 10下Anaconda虚拟环境的教程
May 18 Python
Pycharm2020.1安装无法启动问题即设置中文插件的方法
Aug 07 Python
python3:excel操作之读取数据并返回字典 + 写入的案例
Sep 01 Python
python实现批量提取指定文件夹下同类型文件
Apr 05 Python
基于Python实现流星雨效果的绘制
Mar 18 Python
python 实现图片特效处理
Apr 03 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类
2006/11/25 PHP
php Xdebug的安装与使用详解
2013/06/20 PHP
浅谈PHP中关于foreach使用引用变量的坑
2016/11/14 PHP
利用PHPExcel读取Excel的数据和导出数据到Excel
2017/05/12 PHP
PHP实现微信红包金额拆分试玩的算法示例
2018/04/07 PHP
Javascript优化技巧(文件瘦身篇)
2008/01/28 Javascript
jquery之empty()与remove()区别说明
2010/09/10 Javascript
10款新鲜出炉的 jQuery 插件(Ajax 插件,有幻灯片、图片画廊、菜单等)
2011/06/08 Javascript
关于jQuery的inArray 方法介绍
2011/10/08 Javascript
node.js超时timeout详解
2014/11/26 Javascript
js中 计算两个日期间的工作日的简单实例
2016/08/08 Javascript
jQuery DateTimePicker 日期和时间插件示例
2017/01/22 Javascript
Node.JS文件系统解析实例详解
2017/05/15 Javascript
Vue之Watcher源码解析(2)
2017/07/19 Javascript
详解express与koa中间件模式对比
2017/08/07 Javascript
CentOS环境中MySQL修改root密码方法
2018/01/07 Javascript
vue2.0 better-scroll 实现移动端滑动的示例代码
2018/01/25 Javascript
学习JS中的DOM节点以及操作
2018/04/30 Javascript
javascript实现贪吃蛇经典游戏
2020/04/10 Javascript
vue.js 输入框输入值自动过滤特殊字符替换中问标点操作
2020/08/31 Javascript
[01:09:24]Ti4开幕式
2014/07/19 DOTA
跟老齐学Python之永远强大的函数
2014/09/14 Python
Python3使用pandas模块读写excel操作示例
2018/07/03 Python
python实现数据分析与建模
2019/07/11 Python
python爬虫 模拟登录人人网过程解析
2019/07/31 Python
matplotlib 曲线图 和 折线图 plt.plot()实例
2020/04/17 Python
不到20行实现Python代码即可制作精美证件照
2020/04/24 Python
CSS3盒子模型详解
2013/04/24 HTML / CSS
简单总结CSS3中视窗单位Viewport的常见用法
2016/02/04 HTML / CSS
可爱的童装和鞋子:Fabkids
2019/08/16 全球购物
opencv实现图像几何变换
2021/03/24 Python
孝敬父母的演讲稿
2014/05/14 职场文书
安全标兵事迹材料
2014/08/17 职场文书
党的群众路线教育实践活动批评与自我批评范文
2014/10/16 职场文书
遗嘱范文
2015/08/07 职场文书
jdbc使用PreparedStatement批量插入数据的方法
2021/04/27 MySQL