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正则表达式介绍
Aug 06 Python
Python sys.path详细介绍
Oct 17 Python
Python SQLite3数据库操作类分享
Jun 10 Python
在Linux中通过Python脚本访问mdb数据库的方法
May 06 Python
python在windows下创建隐藏窗口子进程的方法
Jun 04 Python
Windows下搭建python开发环境详细步骤
Jul 20 Python
Python数据结构之双向链表的定义与使用方法示例
Jan 16 Python
python3中的md5加密实例
May 29 Python
Python实现的IP端口扫描工具类示例
Feb 15 Python
如何使用python进行pdf文件分割
Nov 11 Python
Python Flask异步发送邮件实现方法解析
Aug 01 Python
python实战之90行代码写个猜数字游戏
Apr 22 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
fleaphp crud操作之findByField函数的使用方法
2011/04/23 PHP
$_GET['goods_id']+0 的使用详解
2013/06/06 PHP
php使用curl模拟登录后采集页面的例子
2013/11/04 PHP
按钮JS复制文本框和表格的代码
2011/04/01 Javascript
JavaScript设计模式之策略模式实例
2014/10/10 Javascript
JavaScript编写检测用户所使用的浏览器的代码示例
2016/05/05 Javascript
js阻止浏览器默认行为触发的通用方法(推荐)
2016/05/15 Javascript
JS实现图片放大缩小的方法
2017/02/15 Javascript
Vue.js中轻松解决v-for执行出错的三个方案
2017/06/09 Javascript
JS实现搜索关键词的智能提示功能
2017/07/07 Javascript
JavaScript模块详解
2017/12/18 Javascript
Node.js中DNS模块学习总结
2018/02/28 Javascript
简述JS控制台的使用
2018/07/15 Javascript
小程序登录/注册页面设计的实现代码
2019/05/24 Javascript
JavaScript遍历数组和对象的元素简单操作示例
2019/07/09 Javascript
移动端手指操控左右滑动的菜单
2019/09/08 Javascript
如何实现echarts markline标签名显示自己想要的
2020/07/20 Javascript
python小技巧之批量抓取美女图片
2014/06/06 Python
python 示例分享---逻辑推理编程解决八皇后
2014/07/20 Python
Python写的PHPMyAdmin暴力破解工具代码
2014/08/06 Python
在Django的模板中使用认证数据的方法
2015/07/23 Python
Python3使用requests登录人人影视网站的方法
2016/05/11 Python
python3.6 +tkinter GUI编程 实现界面化的文本处理工具(推荐)
2017/12/20 Python
JS设计模式之责任链模式实例详解
2018/02/03 Python
对python tkinter窗口弹出置顶的方法详解
2019/06/14 Python
Python如何应用cx_Oracle获取oracle中的clob字段问题
2019/08/27 Python
Python socket处理client连接过程解析
2020/03/18 Python
基于HTML5实现类似微信手机摇一摇功能(计算摇动次数)
2017/07/24 HTML / CSS
JDO的含义
2012/11/17 面试题
酒店应聘自荐信
2013/11/09 职场文书
纪律教育学习月活动总结
2014/08/27 职场文书
传承焦裕禄精神思想汇报2014
2014/09/10 职场文书
医院反腐倡廉演讲稿
2014/09/16 职场文书
出国留学单位推荐信
2015/03/26 职场文书
python使用PySimpleGUI设置进度条及控件使用
2021/06/10 Python
你真的会用Mysql的explain吗
2022/03/31 MySQL