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字符串的encode与decode研究心得乱码问题解决方法
Mar 23 Python
python实现简单socket程序在两台电脑之间传输消息的方法
Mar 13 Python
Android 兼容性问题:java.lang.UnsupportedOperationException解决办法
Mar 19 Python
python安装教程
Feb 28 Python
python实现读Excel写入.txt的方法
Apr 29 Python
python实现内存监控系统
Mar 07 Python
对python GUI实现完美进度条的示例详解
Dec 13 Python
解决python打不开文件(文件不存在)的问题
Feb 18 Python
numpy下的flatten()函数用法详解
May 27 Python
详解Python3之数据指纹MD5校验与对比
Jun 11 Python
Python面向对象之继承原理与用法案例分析
Dec 31 Python
关于python3.9安装wordcloud出错的问题及解决办法
Nov 02 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系统中使用PHP 5.3之后的库
2015/12/02 PHP
php PDO属性设置与操作方法分析
2018/12/27 PHP
[IE&FireFox兼容]JS对select操作
2007/01/07 Javascript
javascript attachEvent和addEventListener使用方法
2009/03/19 Javascript
修改file按钮的默认样式实现代码
2013/04/23 Javascript
js的2种继承方式详解
2014/03/04 Javascript
Javascript访问器属性实例分析
2014/12/30 Javascript
AngularJS语法详解
2015/01/23 Javascript
7个让JavaScript变得更好的注意事项
2015/01/28 Javascript
js实现单击图片放大图片的方法
2015/02/17 Javascript
微信开发 消息推送实现代码
2016/10/21 Javascript
JavaScript中setTimeout的那些事儿
2016/11/14 Javascript
WebView启动支付宝客户端支付失败的问题小结
2017/01/11 Javascript
js实现下一页页码效果
2017/03/07 Javascript
JS实现的简单折叠展开动画效果示例
2018/04/28 Javascript
vue-cli 如何打包上线的方法示例
2018/05/08 Javascript
vue动态设置img的src路径实例
2018/09/18 Javascript
Vue的H5页面唤起支付宝支付功能
2019/04/18 Javascript
新手如何快速理解js异步编程
2019/06/24 Javascript
vue-openlayers实现地图坐标弹框效果
2020/09/24 Javascript
Python运用于数据分析的简单教程
2015/03/27 Python
python 地图经纬度转换、纠偏的实例代码
2018/08/06 Python
python画图系列之个性化显示x轴区段文字的实例
2018/12/13 Python
Python生态圈图像格式转换问题(推荐)
2019/12/02 Python
Python requests上传文件实现步骤
2020/09/15 Python
Python机器学习工具scikit-learn的使用笔记
2021/01/28 Python
html5 input元素新特性_动力节点Java学院整理
2017/07/06 HTML / CSS
美国在线肉类和海鲜配送:Crowd Cow
2020/10/02 全球购物
Java的for语句中break, continue和return的区别
2013/12/19 面试题
工伤赔偿协议书
2014/04/15 职场文书
公司行政专员岗位职责
2014/08/24 职场文书
4s店活动策划方案
2014/08/25 职场文书
2014年社区党建工作汇报材料
2014/11/02 职场文书
公司员工安全协议书
2014/11/21 职场文书
保证书格式
2015/01/16 职场文书
学雷锋日活动总结
2015/02/06 职场文书