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 相关文章推荐
在SAE上部署Python的Django框架的一些问题汇总
May 30 Python
详解python时间模块中的datetime模块
Jan 13 Python
Python使用urllib2模块抓取HTML页面资源的实例分享
May 03 Python
Python中函数参数设置及使用的学习笔记
May 03 Python
Python内建模块struct实例详解
Feb 02 Python
numpy使用技巧之数组过滤实例代码
Feb 03 Python
flask中的wtforms使用方法
Jul 21 Python
python3 property装饰器实现原理与用法示例
May 15 Python
django-crontab 定时执行任务方法的实现
Sep 06 Python
python的命名规则知识点总结
Oct 04 Python
python 在threading中如何处理主进程和子线程的关系
Apr 25 Python
判断Threading.start新线程是否执行完毕的实例
May 02 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
德劲1102收音机的打理维修案例
2021/03/02 无线电
解决phpmyadmin 乱码,支持gb2312和utf-8
2006/11/20 PHP
实用函数8
2007/11/08 PHP
php+js实现图片的上传、裁剪、预览、提交示例
2013/08/27 PHP
PHP实现单条sql执行多个数据的insert语句方法
2019/10/11 PHP
基于jQuery的可以控制左右滚动及自动滚动效果的代码
2010/07/25 Javascript
juqery 学习之四 筛选过滤
2010/11/30 Javascript
实现点击列表弹出列表索引的两种方式
2013/03/08 Javascript
jQuery+AJAX实现网页无刷新上传
2015/02/22 Javascript
javascript判断网页是关闭还是刷新
2015/09/12 Javascript
基于insertBefore制作简单的循环插空效果
2015/09/21 Javascript
echarts3 使用总结(绘制各种图表,地图)
2017/01/05 Javascript
vue2 如何实现div contenteditable=“true”(类似于v-model)的效果
2017/02/08 Javascript
Node.js学习之地址解析模块URL的使用详解
2017/09/28 Javascript
vue a标签点击实现赋值方式
2020/09/07 Javascript
一个计算身份证号码校验位的Python小程序
2014/08/15 Python
Django中URLconf和include()的协同工作方法
2015/07/20 Python
Python求算数平方根和约数的方法汇总
2016/03/09 Python
利用python画出AUC曲线的实例
2020/02/28 Python
详解pandas获取Dataframe元素值的几种方法
2020/06/14 Python
使用phonegap进行提示操作的具体方法
2017/03/30 HTML / CSS
巴西购物网站:Estrela10
2018/12/13 全球购物
EJB需直接实现它的业务接口或Home接口吗,请简述理由
2016/11/23 面试题
可贵的沉默教学反思
2014/02/06 职场文书
大学运动会入场词
2014/02/22 职场文书
学校综治宣传月活动总结
2014/07/02 职场文书
公安交警个人对照检查材料思想汇报
2014/10/01 职场文书
2014年加油站工作总结
2014/12/04 职场文书
清洁工工作总结
2015/08/11 职场文书
2016猴年春节慰问信
2015/11/30 职场文书
掌握一个领域知识,高效学习必备方法
2019/08/08 职场文书
导游词之苏州盘门景区
2019/11/12 职场文书
MySQL 发生同步延迟时Seconds_Behind_Master还为0的原因
2021/06/21 MySQL
Pyqt5将多个类组合在一个界面显示的完整示例
2021/09/04 Python
python中的getter与setter你了解吗
2022/03/24 Python
SpringBoot接入钉钉自定义机器人预警通知
2022/07/15 Java/Android