Python操作Mongodb数据库的方法小结


Posted in Python onSeptember 10, 2019

本文实例讲述了Python操作Mongodb数据库的方法。分享给大家供大家参考,具体如下:

一 导入 pymongo

from pymongo import MongoClient

二 连接服务器 端口号 27017

连接MongoDB

连接MongoDB我们需要使用PyMongo库里面的MongoClient,一般来说传入MongoDB的IP及端口即可,第一个参数为地址host,第二个参数为端口port,端口如果不传默认是27017。

conn = MongoClient("localhost")
MongoClient(host='127.0.0.1',port=27017)

三 连接数据库

db = conn.数据库名称

连接集合

collection = db[collection_name]

or

collection = db.collection_name

查看全部聚集名称

db.collection_names()

四 插入数据

(1) 插入一条数据

db.user.insert({"name":"夏利刚","age":18,"hobby":"学习"})

(2) 插入多条数据

db.user.insert([{"name":"夏利刚","age":18,"hobby":"学习"},{"name":"xxxoo","age":48,"hobby":"学习"}]

(3) 在3.x以上 建议 使用

insert_one 插入一条数据
insert_many() 插入多条数据

(4) 返回 id 使用insert_one()

data.inserted_id
data.inserted_ids

五 查询数据

(1) 查询所有

db.user.find()
#带条件的查询
# data = db.user.find({"name":"周日"})
# print(data) #返回result类似一个迭代器 可以使用 next方法 一个一个 的取出来
# print(next(data))  #取出一条数据

(2) 查询一条

db.user.find_one()

(3) 带条件查询

db.user.find({"name":"张三"})

(4) 查询 id

from bson.objectid import ObjectId*#用于ID查询
data = db.user.find({"_id":ObjectId("59a2d304b961661b209f8da1")})

(5) 模糊查询

(1)

{"name":{'$regex':"张"}}

(2)

import re {'xxx':re.compile('xxx')}

六 sort limit count skip

(1) sort 排序

年龄 大于10

data = db.user.find({"age":{"$gt":10}}).sort("age",-1) #年龄 升序 查询 pymongo.ASCENDING --升序
data = db.user.find({"age":{"$gt":10}}).sort("age",1) #年龄 降序 查询 pymongo.DESCENDING --降序

(2) limit 取值

取三条数据

db.user.find().limit(3)
data = db.user.find({"age":{"$gt":10}}).sort("age",-1).limit(3)

(3) count 统计数据条数

db.user.find().count()

(4) skip 从第几条数据开始取

db.user.find().skip(2)

七 update 修改

update()方法其实也是官方不推荐使用的方法,在这里也分了update_one()方法和update_many()方法,用法更加严格,

(1) update()

db.user.update({"name":"张三"},{"$set":{"age":25}})
db.user.update({"name":"张三"},{"$inc":{"age":25}})

(2) update_one() 第一条符合条件的数据进行更新

​ db.user.update_one({"name":"张三"},{"$set":{"age":99}})

(3) update_many() 将所有符合条件的数据都更新

db.user.update_many({"name":"张三"},{"$set":{"age":91}})

(4) 其返回结果是UpdateResult类型,然后调用matched_count和modified_count属性分别可以获得匹配的数据条数和影响的数据条数。

print(result.matched_count, result.modified_count)

八 remove 删除

删除操作比较简单,直接调用remove()方法指定删除的条件即可,符合条件的所有数据均会被删除,

(1) 删除 张三

collection.remove({"name":"lilei"})

(2) 全部删除

collection.remove()

(3) 依然存在两个新的推荐方法,delete_one()和delete_many()方法,示例如下:

delete_one()即删除第一条符合条件的数据
collection.delete_one({"name":" Kevin"})
delete_many()即删除所有符合条件的数据,返回结果是DeleteResult类型
collection.delete_many({"age": {$lt:25}})

(4) 可以调用deleted_count属性获取删除的数据条数。

result.deleted_count

九 关闭连接

conn.close()

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python提取Linux内核源代码的目录结构实现方法
Jun 24 Python
用Python将动态GIF图片倒放播放的方法
Nov 02 Python
Python实现的三层BP神经网络算法示例
Feb 07 Python
python在每个字符后添加空格的实例
May 07 Python
Django中提供的6种缓存方式详解
Aug 05 Python
对django的User模型和四种扩展/重写方法小结
Aug 17 Python
Django 简单实现分页与搜索功能的示例代码
Nov 07 Python
Python实现爬取并分析电商评论
Jun 19 Python
Python实现自动装机功能案例分析
Oct 22 Python
python中判断数字是否为质数的实例讲解
Dec 06 Python
python通用数据库操作工具 pydbclib的使用简介
Dec 21 Python
python自动统计zabbix系统监控覆盖率的示例代码
Apr 03 Python
Python使用matplotlib绘制三维参数曲线操作示例
Sep 10 #Python
Python matplotlib绘制饼状图功能示例
Sep 10 #Python
numpy.random.shuffle打乱顺序函数的实现
Sep 10 #Python
python+pygame实现坦克大战
Sep 10 #Python
使用virtualenv创建Python环境及PyQT5环境配置的方法
Sep 10 #Python
Python将视频或者动态图gif逐帧保存为图片的方法
Sep 10 #Python
python使用PIL和matplotlib获取图片像素点并合并解析
Sep 10 #Python
You might like
MYSQL 小技巧 -- LAST_INSERT_ID
2009/11/24 PHP
PHP删除HTMl标签的实现代码
2013/06/30 PHP
Laravel 5框架学习之Laravel入门和新建项目
2015/04/07 PHP
PHP实现的迷你漂流瓶
2015/07/29 PHP
JQuery 技巧和窍门整理(8个)
2010/04/22 Javascript
Array.prototype.concat不是通用方法反驳[译]
2012/09/20 Javascript
Jquery时间验证和转换工具小例子
2013/07/01 Javascript
jquery获取复选框被选中的值
2014/04/10 Javascript
webpack中的热刷新与热加载的区别
2018/04/09 Javascript
NodeJs项目中关闭ESLint的方法
2018/08/09 NodeJs
在博客园博文中添加自定义右键菜单的方法详解
2020/02/05 Javascript
python通过邮件服务器端口发送邮件的方法
2015/04/30 Python
python写入xml文件的方法
2015/05/08 Python
说一说Python logging
2016/04/15 Python
Python for Informatics 第11章之正则表达式(四)
2016/04/21 Python
Python中字符串的修改及传参详解
2016/11/30 Python
pycharm中连接mysql数据库的步骤详解
2017/05/02 Python
怎么使用pipenv管理你的python项目
2018/03/12 Python
用Django写天气预报查询网站
2018/10/21 Python
解决Pytorch训练过程中loss不下降的问题
2020/01/02 Python
使用python+poco+夜神模拟器进行自动化测试实例
2020/04/23 Python
python实例化对象的具体方法
2020/06/17 Python
Python3爬虫里关于Splash负载均衡配置详解
2020/07/10 Python
Python浮点型(float)运算结果不正确的解决方案
2020/09/22 Python
python实现录音功能(可随时停止录音)
2020/10/26 Python
德国隐形眼镜店:LuckyLens
2018/07/29 全球购物
英国最大的自有市场,比亚马逊便宜:Flubit
2019/03/19 全球购物
通用C#笔试题附答案
2016/11/26 面试题
先进德育工作者事迹材料
2014/01/24 职场文书
领导班子奢靡之风查摆问题及整改措施
2014/09/27 职场文书
西双版纳导游词
2015/02/03 职场文书
2015年工商所工作总结
2015/05/21 职场文书
2015中学教师个人工作总结
2015/07/22 职场文书
java设计模式--三种工厂模式详解
2021/07/21 Java/Android
Python绘制散乱的点构成的图的方法
2022/04/21 Python
JS开发前端团队展示控制器来为成员引流
2022/08/14 Javascript