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实现的一个简单LRU cache
Sep 26 Python
Python实现抓取百度搜索结果页的网站标题信息
Jan 22 Python
Python模拟登陆淘宝并统计淘宝消费情况的代码实例分享
Jul 04 Python
浅谈五大Python Web框架
Mar 20 Python
Python批量发送post请求的实现代码
May 05 Python
详解python异步编程之asyncio(百万并发)
Jul 07 Python
Python全局变量与局部变量区别及用法分析
Sep 03 Python
python文字和unicode/ascll相互转换函数及简单加密解密实现代码
Aug 12 Python
解决paramiko执行命令超时的问题
Apr 16 Python
浅谈pytorch中的BN层的注意事项
Jun 23 Python
Python利用socket模块开发简单的端口扫描工具的实现
Jan 27 Python
Matlab使用Plot函数实现数据动态显示方法总结
Feb 25 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
Centos下升级php5.2到php5.4全记录(编译安装)
2015/04/03 PHP
PHP最常用的正则表达式
2017/02/13 PHP
PHP获取文件扩展名的常用方法小结【五种方式】
2018/04/27 PHP
PHP实现非阻塞模式的方法分析
2018/07/26 PHP
laravel validate 设置为中文的例子(验证提示为中文)
2019/09/29 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
js实时获取系统当前时间实例代码
2013/06/28 Javascript
判断javascript的数据类型(示例代码)
2013/12/11 Javascript
首页图片漂浮效果示例代码
2014/06/05 Javascript
javascript实现相同事件名称,不同命名空间的调用方法
2015/06/26 Javascript
JavaScript实现图片轮播的方法
2015/07/31 Javascript
前端 Vue.js 和 MVVM 详细介绍
2016/12/29 Javascript
Node.js使用orm2进行update操作时关联字段无法修改的解决方法
2017/06/13 Javascript
React + webpack 环境配置的方法步骤
2017/09/07 Javascript
vue 地图可视化 maptalks 篇实例代码详解
2019/05/21 Javascript
基于layui的下拉列表的数据回显方法
2019/09/24 Javascript
vue实现select下拉显示隐藏功能
2019/09/30 Javascript
浅谈TypeScript的类型保护机制
2020/02/23 Javascript
python改变日志(logging)存放位置的示例
2014/03/27 Python
跟老齐学Python之深入变量和引用对象
2014/09/24 Python
Python编程之多态用法实例详解
2015/05/19 Python
用Python写飞机大战游戏之pygame入门(4):获取鼠标的位置及运动
2015/11/05 Python
python使用 HTMLTestRunner.py生成测试报告
2017/10/20 Python
详解利用django中间件django.middleware.csrf.CsrfViewMiddleware防止csrf攻击
2018/10/09 Python
Python面向对象程序设计之私有属性及私有方法示例
2019/04/08 Python
Python检查图片是否损坏及图片类型是否正确过程详解
2019/09/30 Python
Python3合并两个有序数组代码实例
2020/08/11 Python
加拿大国民体育购物网站:National Sports
2018/11/04 全球购物
英国领先的男装设计师服装独立零售商:Repertoire Fashion
2020/10/19 全球购物
夜大毕业生自我鉴定
2013/10/31 职场文书
市场营销专业毕业生自荐信
2013/11/02 职场文书
公司活动方案范文
2014/03/06 职场文书
行政监察建议书
2014/05/19 职场文书
关于读书的演讲稿300字
2014/08/27 职场文书
2014大学生职业生涯规划书最新范文
2014/09/13 职场文书
法院干警四风问题自我剖析材料
2014/09/29 职场文书