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使用email模块对邮件进行编码和解码的实例教程
Jul 01 Python
浅谈python内置变量-reversed(seq)
Jun 21 Python
Python实现将16进制字符串转化为ascii字符的方法分析
Jul 21 Python
python实现读取excel文件中所有sheet操作示例
Aug 09 Python
python常用数据重复项处理方法
Nov 22 Python
python 中值滤波,椒盐去噪,图片增强实例
Dec 18 Python
利用Python脚本批量生成SQL语句
Mar 04 Python
django序列化时使用外键的真实值操作
Jul 15 Python
基于python制作简易版学生信息管理系统
Apr 20 Python
Python自动化之批量处理工作簿和工作表
Jun 03 Python
浅析Python中的随机采样和概率分布
Dec 06 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开启安全模式后禁用的函数集合
2011/06/26 PHP
解析php中获取url与物理路径的总结
2013/06/21 PHP
PHP+Ajax实现的检测用户名功能简单示例
2019/02/12 PHP
laravel使用Faker数据填充的实现方法
2019/04/12 PHP
同域jQuery(跨)iframe操作DOM(实例讲解)
2013/12/19 Javascript
JavaScript中判断两个字符串是否相等的方法
2015/07/07 Javascript
AngularJS基础 ng-model-options 指令简单示例
2016/08/02 Javascript
JavaScript之WebSocket技术详解
2016/11/18 Javascript
vue2.0中goods选购栏滚动算法的实现代码
2017/05/17 Javascript
vue2.0开发入门笔记之.vue文件的生成和使用
2017/09/19 Javascript
浅谈node中的cluster集群
2018/06/02 Javascript
微信小程序中悬浮窗功能的实现代码
2019/08/02 Javascript
vue实现自定义多选按钮
2020/07/16 Javascript
浅谈js中的attributes和Attribute的用法与区别
2020/07/16 Javascript
vue 使用async写数字动态加载效果案例
2020/07/18 Javascript
vue在App.vue文件中监听路由变化刷新页面操作
2020/08/14 Javascript
vue 全局封装loading加载教程(全局监听)
2020/11/05 Javascript
[05:49]2014DOTA2TI4正赛第二日综述 昔日冠军纷纷落马 VG LGD占尽先机
2014/07/20 DOTA
python中list常用操作实例详解
2015/06/03 Python
浅谈python中copy和deepcopy中的区别
2017/10/23 Python
Python读取MRI并显示为灰度图像实例代码
2018/01/03 Python
TensorFlow 滑动平均的示例代码
2018/06/19 Python
Python网页正文转换语音文件的操作方法
2018/12/09 Python
浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器
2019/03/11 Python
Python 安装 virturalenv 虚拟环境的教程详解
2020/02/21 Python
Python MySQLdb 执行sql语句时的参数传递方式
2020/03/04 Python
GNC健安喜美国官网:美国第一营养品牌
2016/07/22 全球购物
英国一家专门出售品牌鞋子的网站:Allsole
2016/08/07 全球购物
Abbacino官网:包、钱包和女士配饰
2019/04/15 全球购物
ORACLE第二个十问
2013/12/14 面试题
物业管理专业个人的自我评价
2013/11/19 职场文书
大学生个人事迹材料
2014/01/21 职场文书
高中生的自我评价
2014/03/04 职场文书
三字经教学反思
2014/04/26 职场文书
2014工程部年度工作总结
2014/12/17 职场文书
父母教会我观后感
2015/06/17 职场文书