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重新引入被覆盖的自带function
Jul 16 Python
python使用marshal模块序列化实例
Sep 25 Python
Python fileinput模块使用介绍
Nov 30 Python
详解python实现线程安全的单例模式
Mar 05 Python
python文本数据相似度的度量
Mar 12 Python
python实现微信小程序自动回复
Sep 10 Python
Python中实现单例模式的n种方式和原理
Nov 14 Python
python版飞机大战代码分享
Nov 20 Python
Python3.5多进程原理与用法实例分析
Apr 05 Python
python3 图片 4通道转成3通道 1通道转成3通道 图片压缩实例
Dec 03 Python
Python连接SQLite数据库并进行增册改查操作方法详解
Feb 18 Python
python turtle绘图
May 04 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的urlencode()URL编码函数浅析
2011/08/09 PHP
PHP实现生成唯一编号(36进制的不重复编号)
2014/07/01 PHP
php实现的一个简单json rpc框架实例
2015/03/30 PHP
wordpress安装过程中遇到中文乱码的处理方法
2015/04/21 PHP
jquery1.4.2 for Visual studio 2010 模板文件
2010/07/14 Javascript
使用jquery实现简单的ajax
2013/07/08 Javascript
JS判断不能为空实例代码
2013/11/26 Javascript
jQuery Mobile的loading对话框显示/隐藏方法分享
2013/11/26 Javascript
jquery修改属性值实例代码(设置属性值)
2014/01/06 Javascript
Angular发布1.5正式版,专注于向Angular 2的过渡
2016/02/18 Javascript
使用开源工具制作网页验证码的方法
2016/10/17 Javascript
详解照片瀑布流效果(js,jquery分别实现与知识点总结)
2017/01/01 Javascript
简单谈谈gulp-changed插件
2017/02/21 Javascript
JS监控关闭浏览器操作的实例详解
2017/09/12 Javascript
vue 项目中使用Loading组件的示例代码
2018/08/31 Javascript
Vue 使用formData方式向后台发送数据的实现
2019/04/14 Javascript
详解为element-ui的Select和Cascader添加弹层底部操作按钮
2020/02/07 Javascript
python 监听salt job状态,并任务数据推送到redis中的方法
2019/01/14 Python
Python程序包的构建和发布过程示例详解
2019/06/09 Python
Python Opencv 通过轨迹(跟踪)栏实现更改整张图像的背景颜色
2020/03/09 Python
Python如何操作office实现自动化及win32com.client的运用
2020/04/01 Python
基于Python共轭梯度法与最速下降法之间的对比
2020/04/02 Python
Python实现简单的猜单词小游戏
2020/10/28 Python
用pushplus+python监控亚马逊到货动态推送微信
2021/01/29 Python
纯CSS3实现自定义Tooltip边框涂鸦风格的教程
2014/11/05 HTML / CSS
详解FireFox下Canvas使用图像合成绘制SVG的Bug
2019/07/10 HTML / CSS
房地产出纳岗位职责
2013/12/01 职场文书
服务员自我评价
2014/01/25 职场文书
面试后的英文感谢信
2014/02/01 职场文书
内刊编辑求职自荐书范文
2014/02/19 职场文书
室内设计专业自荐信
2014/05/31 职场文书
公司承诺函范文
2015/01/21 职场文书
观后感格式
2015/06/19 职场文书
幼儿园教师心得体会范文
2016/01/21 职场文书
导游词之南京夫子庙
2019/12/09 职场文书
Python first-order-model实现让照片动起来
2022/06/25 Python