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实现k均值算法示例(k均值聚类算法)
Mar 16 Python
python爬取各类文档方法归类汇总
Mar 22 Python
python使用PIL模块获取图片像素点的方法
Jan 08 Python
python3 selenium自动化 frame表单嵌套的切换方法
Aug 23 Python
python多任务之协程的使用详解
Aug 26 Python
在 Linux/Mac 下为Python函数添加超时时间的方法
Feb 20 Python
Python Numpy中数据的常用保存与读取方法
Apr 01 Python
Python smtp邮件发送模块用法教程
Jun 15 Python
Windows 平台做 Python 开发的最佳组合(推荐)
Jul 27 Python
python爬虫爬取网页数据并解析数据
Sep 18 Python
Python使用cn2an实现中文数字与阿拉伯数字的相互转换
Mar 02 Python
python3 删除所有自定义变量的操作
Apr 08 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
德劲1103的维修打理经验
2021/03/02 无线电
CentOS7编译安装php7.1的教程详解
2019/04/18 PHP
ThinkPHP5.0框架实现切换数据库的方法分析
2019/10/30 PHP
JS 中document.URL 和 windows.location.href 的区别
2009/11/11 Javascript
javascript打印大全(打印页面设置/打印预览代码)
2013/03/29 Javascript
Js动态添加复选框Checkbox的实例方法
2013/04/08 Javascript
JS实现简易图片轮播效果的方法
2015/03/25 Javascript
javascript实现textarea中tab键的缩排处理方法
2015/06/26 Javascript
JS使用eval()动态创建变量的方法
2016/06/03 Javascript
获取JS中网页各种高宽与位置的方法总结
2016/07/27 Javascript
require.js+vue开发微信上传图片组件
2016/10/27 Javascript
Bootstrap Table使用整理(三)
2017/06/09 Javascript
jQuery封装placeholder效果实现方法,让低版本浏览器支持该效果
2017/07/08 jQuery
Vue Cli与BootStrap结合实现表格分页功能
2017/08/18 Javascript
微信小程序实现笑脸评分功能
2018/11/03 Javascript
如何在Vue中使用CleaveJS格式化你的输入内容
2018/12/14 Javascript
iview的table组件自带的过滤器实现
2019/07/12 Javascript
vue iview多张图片大图预览、缩放翻转
2019/07/13 Javascript
Vue中rem与postcss-pxtorem的应用详解
2019/11/20 Javascript
JS实现躲避粒子小游戏
2020/06/18 Javascript
Vue使用CDN引用项目组件,减少项目体积的步骤
2020/10/30 Javascript
探究Python多进程编程下线程之间变量的共享问题
2015/05/05 Python
Python 装饰器使用详解
2017/07/29 Python
Python基础练习之用户登录实现代码分享
2017/11/08 Python
python之matplotlib学习绘制动态更新图实例代码
2018/01/23 Python
Python正则表达式指南 推荐
2018/10/09 Python
CSS+jQuery+PHP+MySQL实现的在线答题功能
2015/04/25 HTML / CSS
HTML5 播放 RTSP 视频的实例代码
2019/07/29 HTML / CSS
程序集与命名空间有什么不同
2014/07/25 面试题
自我评价的正确写法
2013/09/19 职场文书
国贸专业的职业规划书
2014/03/15 职场文书
质检员岗位职责
2015/02/03 职场文书
工作简报怎么写
2015/07/21 职场文书
家庭教育培训学习心得体会
2016/01/14 职场文书
读《钢铁是怎样炼成的》有感:百炼方成钢
2019/11/05 职场文书
「SHOW BY ROCK!!」“雫シークレットマインド”组合单曲MV公开
2022/03/21 日漫