Python操作mongodb的9个步骤


Posted in Python onJune 04, 2018

一 导入 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显示天气预报
Mar 02 Python
Python多线程结合队列下载百度音乐的方法
Jul 27 Python
Python时间模块datetime、time、calendar的使用方法
Jan 13 Python
python使用正则表达式匹配字符串开头并打印示例
Jan 11 Python
python嵌套字典比较值与取值的实现示例
Nov 03 Python
python实现决策树分类算法
Dec 21 Python
python生成n个元素的全组合方法
Nov 13 Python
python爬虫之验证码篇3-滑动验证码识别技术
Apr 11 Python
python传到前端的数据,双引号被转义的问题
Apr 03 Python
解决Python3.7.0 SSL低版本导致Pip无法使用问题
Sep 03 Python
Python unittest如何生成HTMLTestRunner模块
Sep 08 Python
python实现简易自习室座位预约系统
Jun 30 Python
Python中property函数用法实例分析
Jun 04 #Python
使用Python快速搭建HTTP服务和文件共享服务的实例讲解
Jun 04 #Python
python最长回文串算法
Jun 04 #Python
python中字符串的操作方法大全
Jun 03 #Python
Python Logging 日志记录入门学习
Jun 02 #Python
python实现寻找最长回文子序列的方法
Jun 02 #Python
python实现对求解最长回文子串的动态规划算法
Jun 02 #Python
You might like
制作美丽的拉花
2021/03/03 冲泡冲煮
PHP中通过ADO调用Access数据库的方法测试不通过
2006/12/31 PHP
php数组去重的函数代码
2013/02/03 PHP
PHP异常Parse error: syntax error, unexpected T_VAR错误解决方法
2014/05/06 PHP
php实现utf-8转unicode函数分享
2015/01/06 PHP
thinkphp配置文件路径的实现方法
2016/08/30 PHP
ThinkPHP打水印及设置水印位置的方法
2016/10/14 PHP
Autocomplete Textbox Example javascript实现自动完成成功
2007/08/17 Javascript
5款Javascript颜色选择器
2009/10/25 Javascript
文本框中,回车键触发事件的js代码[多浏览器兼容]
2010/06/07 Javascript
点击表单提交时出现jQuery没有权限的解决方法
2014/07/23 Javascript
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
2016/12/15 Javascript
原生js更改css样式的两种方式
2017/03/15 Javascript
为Jquery EasyUI 组件加上清除功能的方法(详解)
2017/04/13 jQuery
详解angularJs中关于ng-class的三种使用方式说明
2017/06/02 Javascript
js实现二级菜单点击显示当前内容效果
2018/04/28 Javascript
Vue下拉框回显并默认选中随机问题
2018/09/06 Javascript
vue实现移动端悬浮窗效果
2018/12/01 Javascript
重学 JS:为啥 await 不能用在 forEach 中详解
2019/04/15 Javascript
在Python中使用pngquant压缩png图片的教程
2015/04/09 Python
Python线性方程组求解运算示例
2018/01/17 Python
Python3实现的画图及加载图片动画效果示例
2018/01/19 Python
对pandas读取中文unicode的csv和添加行标题的方法详解
2018/12/12 Python
浅谈Scrapy网络爬虫框架的工作原理和数据采集
2019/02/07 Python
python3实现小球转动抽奖小游戏
2020/04/15 Python
Django实现从数据库中获取到的数据转换为dict
2020/03/27 Python
python怎么判断模块安装完成
2020/06/19 Python
Python爬虫实战案例之爬取喜马拉雅音频数据详解
2020/12/07 Python
使用python操作lmdb对数据读取的实例
2020/12/11 Python
La Senza官网:北美顶尖性感内衣品牌
2018/08/03 全球购物
市场调查策划方案
2014/06/10 职场文书
群众路线个人整改措施
2014/10/24 职场文书
2014年全国法制宣传日宣传活动方案
2014/11/02 职场文书
高中生军训感言
2015/08/01 职场文书
Redis遍历所有key的两个命令(KEYS 和 SCAN)
2021/04/12 Redis
JavaScript中isPrototypeOf函数
2021/11/07 Javascript