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发布模块的步骤分享
Feb 21 Python
Python函数的周期性执行实现方法
Aug 13 Python
Python实现ssh批量登录并执行命令
Oct 25 Python
Python自动化开发学习之三级菜单制作
Jul 14 Python
python分布式环境下的限流器的示例
Oct 26 Python
python字符串与url编码的转换实例
May 10 Python
3分钟学会一个Python小技巧
Nov 23 Python
使用Python3内置文档高效学习以及官方中文文档
May 19 Python
pytorch numpy list类型之间的相互转换实例
Aug 18 Python
解决python3 requests headers参数不能有中文的问题
Aug 21 Python
Python控制台实现交互式环境执行
Jun 09 Python
Django项目在pycharm新建的步骤方法
Mar 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
MYSQL数据库初学者使用指南
2006/11/16 PHP
php 静态变量与自定义常量的使用方法
2010/01/26 PHP
php session 写入数据库
2016/02/13 PHP
php实现博客,论坛图片防盗链的方法
2016/10/15 PHP
php类自动装载、链式操作、魔术方法实现代码
2017/07/23 PHP
php mysql PDO 查询操作的实例详解
2017/09/23 PHP
jQuery不间断滚动效果(模拟百度新闻支持文字/图片/垂直滚动)
2013/02/05 Javascript
讲解JavaScript中for...in语句的使用方法
2015/06/03 Javascript
第六章之辅组类与响应式工具
2016/04/25 Javascript
jQuery源码分析之init的详细介绍
2017/02/13 Javascript
原生js中ajax访问的实例详解
2017/09/19 Javascript
vue.js实现只弹一次弹框
2018/01/29 Javascript
node链接mongodb数据库的方法详解【阿里云服务器环境ubuntu】
2019/03/07 Javascript
vue踩坑记-在项目中安装依赖模块npm install报错
2019/04/02 Javascript
js使用文件流下载csv文件的实现方法
2019/07/15 Javascript
layer设置maxWidth及maxHeight解决方案
2019/07/26 Javascript
layui.use模块外部使用其内部定义的js封装函数方法
2019/09/16 Javascript
vue自定义switch开关组件,实现样式可自行更改
2019/11/01 Javascript
element跨分页操作选择详解
2020/06/29 Javascript
javascript实现移动端上传图片功能
2020/08/18 Javascript
解决Vue项目中tff报错的问题
2020/10/21 Javascript
[38:54]完美世界DOTA2联赛PWL S2 Rebirth vs LBZS 第一场 11.28
2020/12/01 DOTA
win7上python2.7连接mysql数据库的方法
2017/01/14 Python
基于Python os模块常用命令介绍
2017/11/03 Python
python实现神经网络感知器算法
2017/12/20 Python
Flask解决跨域的问题示例代码
2018/02/12 Python
Python设计模式之观察者模式原理与用法详解
2019/01/16 Python
python+pyqt5实现图片批量缩放工具
2019/03/18 Python
解决更改AUTH_USER_MODEL后出现的问题
2020/05/14 Python
使用css3制作动感导航条示例
2014/01/26 HTML / CSS
美国最大的珠宝首饰网上商城:Jewelry.com
2016/07/22 全球购物
美国高级工作服品牌:Carhartt
2018/01/25 全球购物
毕业生优秀推荐信
2013/11/26 职场文书
工地安全检查制度
2014/02/04 职场文书
工作鉴定评语
2014/05/04 职场文书
竞选班长演讲稿400字
2014/08/22 职场文书