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实现把json格式转换成文本或sql文件
Jul 10 Python
Python使用logging结合decorator模式实现优化日志输出的方法
Apr 16 Python
python3操作mysql数据库的方法
Jun 23 Python
Python实现感知机(PLA)算法
Dec 20 Python
浅谈python的输入输出,注释,基本数据类型
Apr 02 Python
在Django的View中使用asyncio的方法
Jul 12 Python
Django的Modelforms用法简介
Jul 27 Python
python字典的setdefault的巧妙用法
Aug 07 Python
Python 实现大整数乘法算法的示例代码
Sep 17 Python
python retrying模块的使用方法详解
Sep 25 Python
对python中return与yield的区别详解
Mar 12 Python
解决Python数据可视化中文部分显示方块问题
May 16 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+SQLite存储方案
2010/09/04 PHP
Prototype String对象 学习
2009/07/19 Javascript
JavaScript 类似flash效果的立体图片浏览器
2010/02/08 Javascript
JS的反射问题
2010/04/07 Javascript
jQuery DOM插入节点操作指南
2015/03/03 Javascript
js+HTML5实现canvas多种颜色渐变效果的方法
2015/06/05 Javascript
JS实现弹性菜单效果代码
2015/09/07 Javascript
jQuery 监控键盘一段时间没输入
2016/04/22 Javascript
基于JS代码实现实时显示系统时间
2016/06/16 Javascript
nodejs如何获取时间戳与时间差
2016/08/03 NodeJs
bootstrap动态添加面包屑(breadcrumb)及其响应事件的方法
2017/05/25 Javascript
Vee-Validate的使用方法详解
2017/09/22 Javascript
如何在vue中使用ts的示例代码
2018/02/28 Javascript
vue cli 3.0 使用全过程解析
2018/06/14 Javascript
微信小程序表单弹窗实例
2018/07/19 Javascript
微信小程序滑动选择器的实现代码
2018/08/10 Javascript
JS回调函数 callback的理解与使用案例分析
2019/09/09 Javascript
详解如何在Javascript和Sass之间共享变量
2019/11/13 Javascript
[50:29]2014 DOTA2华西杯精英邀请赛 5 24 DK VS iG
2014/05/26 DOTA
python 获取文件列表(或是目录例表)
2009/03/25 Python
pygame学习笔记(3):运动速率、时间、事件、文字
2015/04/15 Python
在Django框架中伪造捕捉到的URLconf值的方法
2015/07/18 Python
Python实现的爬取网易动态评论操作示例
2018/06/06 Python
Python+opencv 实现图片文字的分割的方法示例
2019/07/04 Python
python 协程中的迭代器,生成器原理及应用实例详解
2019/10/28 Python
Tensorflow 自定义loss的情况下初始化部分变量方式
2020/01/06 Python
Python timer定时器两种常用方法解析
2020/01/20 Python
adidas菲律宾官网:adidas PH
2020/02/07 全球购物
预备党员入党思想汇报
2014/01/04 职场文书
致跳高运动员加油稿
2014/02/12 职场文书
护理专业毕业生自荐信
2014/06/15 职场文书
2015年教学副校长工作总结
2015/07/22 职场文书
Python 机器学习工具包SKlearn的安装与使用
2021/05/14 Python
梳理总结Python开发中需要摒弃的18个坏习惯
2022/01/22 Python
聊聊CSS粘性定位sticky案例解析
2022/06/01 HTML / CSS
ubuntu20.04虚拟机无法上网的问题及解决
2022/12/24 Servers