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中的类与实例
Apr 27 Python
python超简单解决约瑟夫环问题
May 12 Python
python 执行文件时额外参数获取的实例
Dec 18 Python
Python实现TCP探测目标服务路由轨迹的原理与方法详解
Sep 04 Python
python绘制规则网络图形实例
Dec 09 Python
PyTorch中 tensor.detach() 和 tensor.data 的区别详解
Jan 06 Python
Python3实现打印任意宽度的菱形代码
Apr 12 Python
Selenium python时间控件输入问题解决方案
Jul 22 Python
python爬虫用mongodb的理由
Jul 28 Python
GitHub上值得推荐的8个python 项目
Oct 30 Python
python产生模拟数据faker库的使用详解
Nov 04 Python
在vscode中启动conda虚拟环境的思路详解
Dec 25 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 各种排序算法实现代码
2009/08/20 PHP
PHP函数addslashes和mysql_real_escape_string的区别
2014/04/22 PHP
简要剖析PHP的Yii框架的组件化机制的基本知识
2016/03/17 PHP
javascript中删除指定数组中指定的元素的代码
2011/02/12 Javascript
JavaScript 上万关键字瞬间匹配实现代码
2013/07/07 Javascript
Javascript核心读书有感之词法结构
2015/02/01 Javascript
jquery模拟alert的弹窗插件
2015/07/31 Javascript
JavaScript在网页中画圆的函数arc使用方法
2015/11/13 Javascript
详细谈谈javascript的对象
2016/07/31 Javascript
用jquery的attr方法实现图片切换效果
2017/02/05 Javascript
JS闭包用法实例分析
2017/03/27 Javascript
解决Vue.js应用回退或刷新界面时提示用户保存修改问题
2019/11/24 Javascript
vue实现鼠标移过出现下拉二级菜单功能
2019/12/12 Javascript
js实现html滑动图片拼图验证
2020/06/24 Javascript
手机浏览器唤起微信分享(JS)
2020/10/11 Javascript
动态实现element ui的el-table某列数据不同样式的示例
2021/01/22 Javascript
python中文编码问题小结
2014/09/28 Python
python类继承与子类实例初始化用法分析
2015/04/17 Python
你应该知道的python列表去重方法
2017/01/17 Python
详解Django 中是否使用时区的区别
2018/06/14 Python
numpy.array 操作使用简单总结
2019/11/08 Python
Pyecharts绘制全球流向图的示例代码
2020/01/08 Python
Python无头爬虫下载文件的实现
2020/04/02 Python
美国最大的珠宝商之一:Littman Jewelers
2016/11/13 全球购物
Zavvi荷兰:英国大型音像制品和图书游戏零售商
2018/03/22 全球购物
世界顶级俱乐部的官方球衣和套装:Subside Sports
2018/04/22 全球购物
Penhaligon’s英国官网:成立于1870年的英国香水制造商
2021/02/18 全球购物
应用服务器有那些
2012/01/19 面试题
机械专业毕业生自荐信
2013/11/02 职场文书
销售部主管岗位职责
2013/12/18 职场文书
小学运动会入场式解说词
2014/02/18 职场文书
商铺租赁意向书
2014/04/01 职场文书
2014年党课学习材料
2014/05/11 职场文书
90行Python代码开发个人云盘应用
2021/04/20 Python
JS中一些高效的魔法运算符总结
2021/05/06 Javascript
Java多条件判断场景中规则执行器的设计
2021/06/26 Java/Android