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中函数总结之装饰器闭包详解
Jun 12 Python
Python中的迭代器与生成器高级用法解析
Jun 28 Python
Python函数的周期性执行实现方法
Aug 13 Python
windows 10下安装搭建django1.10.3和Apache2.4的方法
Apr 05 Python
Python实现的简单线性回归算法实例分析
Dec 26 Python
django迁移数据库错误问题解决
Jul 29 Python
Jupyter加载文件的实现方法
Apr 14 Python
Python web如何在IIS发布应用过程解析
May 27 Python
pandas将list数据拆分成行或列的实现
Dec 13 Python
Python 用户输入和while循环的操作
May 23 Python
python 字典和列表嵌套用法详解
Jun 29 Python
实操Python爬取觅知网素材图片示例
Nov 27 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动态创建Flash动画
2006/10/09 PHP
frename PHP 灵活文件命名函数 frename
2009/09/09 PHP
PHP中用正则表达式清除字符串的空白
2011/01/17 PHP
php线性表顺序存储实现代码(增删查改)
2012/02/16 PHP
php实现分页显示
2015/11/03 PHP
YII2框架中excel表格导出的方法详解
2017/07/21 PHP
JavaScript去掉空格的方法集合
2010/12/28 Javascript
js 用CreateElement动态创建标签示例
2013/11/20 Javascript
Bootstrap 模态框(Modal)插件代码解析
2016/12/21 Javascript
javascript系统时间设置操作示例
2019/06/17 Javascript
[14:19]2018年度COSER大赛-完美盛典
2018/12/16 DOTA
[02:31]2018年度DOTA2最具人气选手-完美盛典
2018/12/16 DOTA
python获取本机外网ip的方法
2015/04/15 Python
Windows下实现Python2和Python3两个版共存的方法
2015/06/12 Python
python爬取NUS-WIDE数据库图片
2016/10/05 Python
用python记录运行pid,并在需要时kill掉它们的实例
2017/01/16 Python
python学习之面向对象【入门初级篇】
2017/01/21 Python
微信跳一跳python自动代码解读1.0
2018/01/12 Python
Python实现多属性排序的方法
2018/12/05 Python
详解django2中关于时间处理策略
2019/03/06 Python
Python的高阶函数用法实例分析
2019/04/11 Python
python中p-value的实现方式
2019/12/16 Python
Python 面向对象部分知识点小结
2020/03/09 Python
Win10用vscode打开anaconda环境中的python出错问题的解决
2020/05/25 Python
css3边框_动力节点Java学院整理
2017/07/11 HTML / CSS
详解Html5 监听拦截Android返回键方法
2018/04/18 HTML / CSS
美国益智玩具购物网站:Fat Brain Toys
2017/11/03 全球购物
你所知道的集合类都有哪些?主要方法?
2012/12/31 面试题
鞋类设计与工艺专业销售求职信
2013/11/01 职场文书
银行职员个人的工作自我评价
2014/02/15 职场文书
2014年基层党组织公开承诺书
2014/03/29 职场文书
竞选学生会主席演讲稿
2014/04/24 职场文书
2015年重阳节活动总结
2015/03/24 职场文书
让文件路径提取变得更简单的Python Path库
2021/05/27 Python
关于python pygame游戏进行声音添加的技巧
2021/10/24 Python
ubuntu下常用apt命令介绍
2022/06/05 Servers