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绘图方法实例入门
May 19 Python
python调用百度语音识别api
Aug 30 Python
win10 64bit下python NLTK安装教程
Sep 19 Python
10分钟教你用Python实现微信自动回复功能
Nov 28 Python
pandas ix &iloc &loc的区别
Jan 10 Python
基于django micro搭建网站实现加水印功能
May 22 Python
Python读取Excel数据并生成图表过程解析
Jun 18 Python
Pycharm连接gitlab实现过程图解
Sep 01 Python
如何在windows下安装配置python工具Ulipad
Oct 27 Python
python os.rename实例用法详解
Dec 06 Python
pycharm + django跨域无提示的解决方法
Dec 06 Python
python中str内置函数用法总结
Dec 27 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
PHP去除数组中重复的元素并按键名排序函数
2008/08/18 PHP
PHP 强制性文件下载功能的函数代码(任意文件格式)
2010/05/26 PHP
解析smarty模板中类似for的功能实现
2013/06/18 PHP
ThinkPHP中create()方法自动验证表单信息
2017/04/28 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
2017/07/22 PHP
PHP分页显示的方法分析【附PHP通用分页类】
2018/05/10 PHP
关于Blog顶部的滚动导航条代码
2006/09/25 Javascript
extjs 3.31 TreeGrid实现静态页面加载json到TreeGrid里面
2013/04/02 Javascript
javascript中传统事件与现代事件
2015/06/23 Javascript
javascript带回调函数的异步脚本载入方法实例分析
2015/07/02 Javascript
jQuery animate和CSS3相结合实现缓动追逐效果附源码下载
2016/04/18 Javascript
Bootstrap每天必学之工具提示(Tooltip)插件
2016/04/26 Javascript
javascript 实现文本使用省略号替代(超出固定高度的情况)
2017/02/21 Javascript
解决Vue.js 2.0 有时双向绑定img src属性失败的问题
2018/03/14 Javascript
关于js的三种使用方式(行内js、内部js、外部js)的程序代码
2018/05/05 Javascript
jquery引入外部CDN 加载失败则引入本地jq库
2018/05/23 jQuery
vue 双向数据绑定的实现学习之监听器的实现方法
2018/11/30 Javascript
微信小程序封装自定义弹窗的实现代码
2019/05/08 Javascript
微信小程序左滑删除实现代码实例
2019/09/16 Javascript
[00:57]林俊杰助阵DOTA2亚洲邀请赛
2015/01/28 DOTA
[01:14:35]DOTA2上海特级锦标赛B组资格赛#1 Alliance VS Fnatic第一局
2016/02/26 DOTA
[00:20]TI9观赛名额抽取Ⅱ
2019/07/24 DOTA
pytorch 调整某一维度数据顺序的方法
2018/12/08 Python
Python之列表实现栈的工作功能
2019/01/28 Python
详解Python可视化神器Yellowbrick使用
2019/11/11 Python
pytorch 彩色图像转灰度图像实例
2020/01/13 Python
Pytorch 图像变换函数集合小结
2021/02/01 Python
Html5导航栏吸顶方案原理与对比实现
2020/06/10 HTML / CSS
中国首家奢侈品O2O网购平台:第五大道奢侈品网
2017/12/14 全球购物
会计电算化专业应届大学生求职信
2013/10/22 职场文书
网络工程师职业规划
2014/02/10 职场文书
明星员工获奖感言
2014/08/14 职场文书
代领学位证书毕业证书委托书
2014/09/30 职场文书
2014年环境整治工作总结
2014/12/10 职场文书
2016党员党课心得体会
2016/01/07 职场文书
2016年师德学习心得体会
2016/01/12 职场文书