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实现的一个火车票转让信息采集器
Jul 09 Python
如何在python中使用selenium的示例
Dec 26 Python
python:print格式化输出到文件的实例
May 14 Python
使用python接入微信聊天机器人
Mar 31 Python
python绘制已知点的坐标的直线实例
Jul 04 Python
python numpy 常用随机数的产生方法的实现
Aug 21 Python
appium+python adb常用命令分享
Mar 06 Python
python高阶函数map()和reduce()实例解析
Mar 16 Python
Python3之外部文件调用Django程序操作model等文件实现方式
Apr 07 Python
浅谈cv2.imread()和keras.preprocessing中的image.load_img()区别
Jun 12 Python
python与c语言的语法有哪些不一样的
Sep 13 Python
python 利用 PIL 将数组值转成图片的实现
Apr 12 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中配置文件操作 如config.php文件的读取修改等操作
2012/07/07 PHP
解析php防止form重复提交的方法
2013/07/01 PHP
php将mysql数据库整库导出生成sql文件的具体实现
2014/01/08 PHP
关于PHP中interface的用处详解
2020/07/26 PHP
关于 byval 与 byref 的区别分析总结
2007/10/08 Javascript
js图片自动轮播代码分享(js图片轮播)
2014/05/06 Javascript
jQuery 获取兄弟元素的几种不错方法
2014/05/23 Javascript
XML文件转化成NSData对象的方法
2015/08/12 Javascript
javascript实现保留两位小数的多种方法
2015/12/18 Javascript
探究Vue.js 2.0新增的虚拟DOM
2016/10/20 Javascript
JavaScript 监控微信浏览器且自带返回按钮时间
2016/11/27 Javascript
JS及JQuery对Html内容编码,Html转义
2017/02/17 Javascript
vue-cli脚手架-bulid下的配置文件
2018/03/27 Javascript
Webpack devServer中的 proxy 实现跨域的解决
2018/06/15 Javascript
如何让node运行es6模块文件及其原理详解
2018/12/11 Javascript
详解Vue iview IE浏览器不兼容报错(Iview Bable polyfill)
2019/01/07 Javascript
vue动态添加路由addRoutes之不能将动态路由存入缓存的解决
2019/02/19 Javascript
[00:32]2018DOTA2亚洲邀请赛iG出场
2018/04/03 DOTA
Python字符串切片操作知识详解
2016/03/28 Python
发布你的Python模块详解
2016/09/15 Python
关于Python元祖,列表,字典,集合的比较
2017/01/06 Python
详解python里使用正则表达式的分组命名方式
2017/10/24 Python
详解用Python为直方图绘制拟合曲线的两种方法
2019/08/21 Python
Pycharm快捷键配置详细整理
2020/10/13 Python
python上下文管理的使用场景实例讲解
2021/03/03 Python
html5 web本地存储将取代我们的cookie
2012/12/26 HTML / CSS
如何让pre和textarea等HTML元素去掉滚动条自动换行自适应文本内容高度
2019/08/01 HTML / CSS
馥蕾诗美国官网:Fresh美国
2019/10/09 全球购物
Huda Beauty官方商店:化妆和美容产品
2020/09/05 全球购物
高中毕业生生活的自我评价
2013/12/08 职场文书
创业计划书——互联网商机
2014/01/12 职场文书
2014年征兵标语
2014/06/20 职场文书
反对形式主义、官僚主义、享乐主义和奢靡之风整改措施
2014/09/17 职场文书
幼儿园个人师德总结
2015/02/06 职场文书
2016暑期师德培训心得体会
2016/01/09 职场文书
Java各种比较对象的方式的对比总结
2021/06/20 Java/Android