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 相关文章推荐
php使用递归与迭代实现快速排序示例
Jan 23 Python
python中的hashlib和base64加密模块使用实例
Sep 02 Python
Python判断变量是否为Json格式的字符串示例
May 03 Python
Python的SimpleHTTPServer模块用处及使用方法简介
Jan 22 Python
使用python实现语音文件的特征提取方法
Jan 09 Python
python抓取需要扫微信登陆页面
Apr 29 Python
pytorch:实现简单的GAN示例(MNIST数据集)
Jan 10 Python
2020最新pycharm汉化安装(python工程狮亲测有效)
Apr 26 Python
在tensorflow下利用plt画论文中loss,acc等曲线图实例
Jun 15 Python
Python logging模块异步线程写日志实现过程解析
Jun 30 Python
python 提高开发效率的5个小技巧
Oct 19 Python
Python的Tqdm模块实现进度条配置
Feb 24 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
修改Zend引擎实现PHP源码加密的原理及实践
2008/04/14 PHP
php 攻击方法之谈php+mysql注射语句构造
2009/10/30 PHP
PHP实现使用优酷土豆视频地址获取swf播放器分享地址
2014/06/05 PHP
PHP获取photoshop写入图片文字信息的方法
2015/03/31 PHP
开启PHP的伪静态模式
2015/12/31 PHP
laravel框架使用极光推送消息操作示例
2020/02/15 PHP
JS getStyle获取最终样式函数代码
2010/04/01 Javascript
采用call方式实现js继承
2014/05/20 Javascript
JavaScript获取网页表单action属性的方法
2015/04/02 Javascript
深入浅析Node.js 事件循环
2015/12/20 Javascript
详解JavaScript表单验证(E-mail 验证)
2016/03/31 Javascript
jQuery实现页面点击后退弹出提示框的方法
2016/08/24 Javascript
JavaScript中数组slice和splice的对比小结
2016/09/22 Javascript
jQuery操作json常用方法示例
2017/01/04 Javascript
Angular4学习教程之HTML属性绑定的方法
2018/01/04 Javascript
详解基于vue-cli3.0如何构建功能完善的前端架子
2018/10/09 Javascript
微信小程序使用map组件实现检索(定位位置)周边的POI功能示例
2019/01/23 Javascript
简单两步使用node发送qq邮件的方法
2019/03/01 Javascript
Vue+Vant 图片上传加显示的案例
2020/11/03 Javascript
[01:17]辉夜杯战队访谈宣传片—EHOME
2015/12/25 DOTA
Python 字符串操作实现代码(截取/替换/查找/分割)
2013/06/08 Python
Python 专题五 列表基础知识(二维list排序、获取下标和处理txt文本实例)
2017/03/20 Python
python中实现将多个print输出合成一个数组
2018/04/19 Python
python实现AES加密与解密
2019/03/28 Python
numpy库ndarray多维数组的维度变换方法(reshape、resize、swapaxes、flatten)
2020/04/28 Python
英国最大的独立摄影零售商:Park Cameras
2019/11/27 全球购物
人力资源专员自我评价怎么写
2013/09/19 职场文书
网络技术专业求职信
2014/05/02 职场文书
企业安全生产目标责任书
2014/07/23 职场文书
创先争优公开承诺书
2014/08/30 职场文书
运动会搞笑广播稿
2014/10/14 职场文书
护士长2014年终工作总结
2014/11/11 职场文书
JavaScript canvas实现流星特效
2021/05/20 Javascript
nginx中proxy_pass各种用法详解
2021/11/07 Servers
使用javascript解析二维码的三种方式
2021/11/11 Javascript
NASA 机智号火星直升机拍到了毅力号设备碎片
2022/04/29 数码科技