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 基础学习教程
Feb 08 Python
python清除字符串里非数字字符的方法
Jul 02 Python
python结合shell查询google关键词排名的实现代码
Feb 27 Python
听歌识曲--用python实现一个音乐检索器的功能
Nov 15 Python
python定时利用QQ邮件发送天气预报的实例
Nov 17 Python
使用Python实现从各个子文件夹中复制指定文件的方法
Oct 25 Python
对Python w和w+权限的区别详解
Jan 23 Python
使用Python的OpenCV模块识别滑动验证码的缺口(推荐)
May 10 Python
Django项目使用CircleCI的方法示例
Jul 14 Python
从0到1使用python开发一个半自动答题小程序的实现
May 12 Python
python字符串的index和find的区别详解
Jun 20 Python
python 使用xlsxwriter循环向excel中插入数据和图片的操作
Jan 01 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
php删除文件夹及其文件夹下所有文件的函数代码
2013/01/23 PHP
解析zend Framework如何自动加载类
2013/06/28 PHP
小谈php正则提取图片地址
2014/03/27 PHP
Laravel框架路由配置总结、设置技巧大全
2014/09/03 PHP
php使用cookie实现记住登录状态
2015/04/27 PHP
PhpStorm本地断点调试的方法步骤
2018/05/21 PHP
laravel框架中间件 except 和 only 的用法示例
2019/07/12 PHP
如何在PHP中生成随机数
2020/06/04 PHP
javascript中用星号表示预录入内容的实现代码
2011/01/08 Javascript
jquery动画4.升级版遮罩效果的图片走廊--带自动运行效果
2012/08/24 Javascript
JQuery中extend使用介绍
2014/03/13 Javascript
详解JavaScript中的异常处理方法
2015/06/16 Javascript
Node.js中JavaScript操作MySQL的常用方法整理
2016/03/01 Javascript
js,jq,css多方面实现简易下拉菜单功能
2017/05/13 Javascript
Java Varargs 可变参数用法详解
2020/01/28 Javascript
[01:07:15]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第二场 1月25日
2021/03/11 DOTA
在Python中用has_key()方法查找键是否存在的教程
2015/05/21 Python
Python设置Socket代理及实现远程摄像头控制的例子
2015/11/13 Python
python装饰器练习题及答案
2019/11/01 Python
pytorch nn.Conv2d()中的padding以及输出大小方式
2020/01/10 Python
python爬虫爬取网页数据并解析数据
2020/09/18 Python
Python之字典添加元素的几种方法
2020/09/30 Python
如何用Python编写一个电子考勤系统
2021/02/08 Python
如何掌握自荐信格式呢
2013/11/19 职场文书
优秀应届毕业生推荐信
2014/02/18 职场文书
大班开学家长寄语
2014/04/04 职场文书
安全生产标语
2014/06/06 职场文书
2014年移动公司工作总结
2014/12/08 职场文书
幼儿园大班开学寄语(2016秋季)
2015/12/03 职场文书
高一化学教学反思
2016/02/22 职场文书
nginx处理http请求实现过程解析
2021/03/31 Servers
Keras在mnist上的CNN实践,并且自定义loss函数曲线图操作
2021/05/25 Python
SpringBoot 拦截器妙用你真的了解吗
2021/07/01 Java/Android
详解JSON.parse和JSON.stringify用法
2022/02/18 Javascript
Mysql 8.x 创建用户以及授予权限的操作记录
2022/04/18 MySQL
python数字图像处理之图像自动阈值分割示例
2022/06/28 Python