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 算法 排序实现快速排序
Jun 05 Python
Python运用于数据分析的简单教程
Mar 27 Python
python3批量删除豆瓣分组下的好友的实现代码
Jun 07 Python
Python数字图像处理之霍夫线变换实现详解
Jan 12 Python
pycharm 配置远程解释器的方法
Oct 28 Python
Python3.5面向对象程序设计之类的继承和多态详解
Apr 24 Python
PyQt5通信机制 信号与槽详解
Aug 07 Python
python3实现单目标粒子群算法
Nov 14 Python
浅谈tensorflow中张量的提取值和赋值
Jan 19 Python
python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案
Feb 18 Python
python 实现围棋游戏(纯tkinter gui)
Nov 13 Python
python中numpy.empty()函数实例讲解
Feb 05 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 的异常处理程序
2014/06/22 PHP
typecho插件编写教程(二):写一个新插件
2015/05/28 PHP
PHP随机数函数rand()与mt_rand()的讲解
2019/03/25 PHP
Laravel6.18.19如何优雅的切换发件账户
2020/06/14 PHP
解决3.01版的jquery.form.js中文乱码问题的解决方法
2012/03/08 Javascript
js事件(Event)知识整理
2012/10/11 Javascript
通过设置CSS中的position属性来固定层的位置
2015/12/14 Javascript
jQuery时间日期三级联动(推荐)
2016/11/27 Javascript
微信小程序 出现错误:{"baseresponse":{"errcode":-80002,"errmsg":""}}解决办法
2017/02/23 Javascript
微信小程序实现之手势锁功能实例代码
2018/07/19 Javascript
Spring boot 和Vue开发中CORS跨域问题解决
2018/09/05 Javascript
Vue实现开心消消乐游戏算法
2019/10/22 Javascript
Vue如何跨组件传递Slot的实现
2020/12/14 Vue.js
[36:33]完美世界DOTA2联赛循环赛 Matador vs Forest 第一场 11.06
2020/11/06 DOTA
tornado捕获和处理404错误的方法
2014/02/26 Python
简单分析Python中用fork()函数生成的子进程
2015/05/04 Python
深入浅析python中的多进程、多线程、协程
2016/06/22 Python
Python实现中一次读取多个值的方法
2018/04/22 Python
Python函数和模块的使用总结
2019/05/20 Python
python-tkinter之按钮的使用,开关方法
2019/06/11 Python
python读写配置文件操作示例
2019/07/03 Python
Python argparse模块应用实例解析
2019/11/15 Python
Python使用Opencv实现边缘检测以及轮廓检测的实现
2020/12/31 Python
selenium3.0+python之环境搭建的方法步骤
2021/02/01 Python
韩都衣舍天猫官方旗舰店:天猫女装销售总冠军
2017/10/10 全球购物
独特的礼品和创新的科技产品:The Grommet
2018/02/24 全球购物
英国最全面的橄榄球联盟门票网站:Live Rugby Tickets
2018/10/06 全球购物
莫斯科制造商的廉价皮大衣:Fursk
2020/06/09 全球购物
医药营销个人求职信范文
2014/02/07 职场文书
《假如》教学反思
2014/04/17 职场文书
关于观后感的作文
2015/06/18 职场文书
2016党校培训心得体会
2016/01/07 职场文书
详解CocosCreator消息分发机制
2021/04/16 Javascript
Python 用户输入和while循环的操作
2021/05/23 Python
WIN10使用IIS部署ftp服务器详细教程
2022/08/05 Servers
纯CSS打字动画的实现示例
2022/08/05 HTML / CSS