python做前端mongodb_Python爬虫之mongodb和python交互
mongodb和python交互
学习目标
掌握 mongdb和python交互的增删改查的方法
掌握 权限认证的方式使用pymongo模块
1. mongdb和python交互的模块
pymongo 提供了mongdb和python交互的所有方法
安装方式: pip install pymongo
2. 使用pymongo
2.1 导入pymongo并选择要操作的集合
数据库和集合能够自动创建
2.1.1 无需权限认证的方式创建连接对象以及集合操作对象
from pymongo import MongoClient
client = MongoClient(host,port) # 如果是本地连接host,port参数可以省略
collection = client[db名][集合名]
# collection = client.db名.集合名 # 与上边用法相同
2.1.2 需要权限认证的方式创建连接对象以及集合操作对象
from pymongo import MongoClient
from urllib.parse import quote_plus
user = 'python' # 账号
password = 'python' # 密码
host = '127.0.0.1' # host
port = 27017 # port
uri = "mongodb://%s:%s@%s" % (quote_plus(user),
quote_plus(password),
host)
# quote_plus函数:对url进行编码
# uri = mongodb://python:python@127.0.0.1
client = MongoClient(uri, port=port)
collection = client.db名.集合名
2.2 insert()添加数据
insert可以批量的插入数据列表,也可以插入一条数据
collection.insert({一条数据})
collection.insert([{数据一},{数据二}])
2.2.1 添加一条数据
返回插入数据的_id
ret = collection.insert({"name":"test10010","age":33})
print(ret)
2.2.2 添加多条数据
返回ObjectId对象构成的列表
item_list = [{"name":"test1000{}".format(i)} for i in range(10)]
rets = collection.insert(item_list)
print(rets)
for ret in rets:
print(ret)
2.3 find_one()查找一条数据
接收一个字典形式的条件,返回字典形式的整条数据
如果条件为空,则返回第一条
ret = client.test.test.find_one({'name': 'test10001'})
print(ret) # 包含mongodb的ObjectId对象的字典
_ = ret.pop('_id') # 清除mongodb的ObjectId对象的k,v
print(ret)
2.4 find()查找全部数据
返回所有满足条件的结果,如果条件为空,则返回全部
结果是一个Cursor游标对象,是一个可迭代对象,可以类似读文件的指针,但是只能够进行一次读取
rets = collection.find({"name":"test10005"}),
for ret in rets:
print(ret)
for ret in rets: #此时rets中没有内容
print(ret)
2.5 update()更新数据(全文档覆盖或指定键值,更新一条或多条)
语法:collection.update({条件}, {’$set’:{指定的kv或完整的一条数据}}, multi=False/True, upsert=False/True)
multi参数:默认为False,表示更新一条; multi=True则更新多条; multi参数必须和$set一起使用
upsert参数:默认为False; upsert=True则先查询是否存在,存在则更新;不存在就插入
$set表示指定字段进行更新
2.5.1 更新一条数据;全文档覆盖;存在就更新,不存在就插入
data = {'msg':'这是一条完整的数据1','name':'哈哈'}
client.test.test.update({'haha': 'heihei'}, {'$set':data}, upsert=True)
2.5.2 更新多条数据;全文档覆盖;存在就更新,不存在就插入
data = {'msg':'这是一条完整的数据2','name':'哈哈'} # 该完整数据是先查询后获取的
client.test.test.update({}, {'$set':data}, multi=True, upsert=True)
2.5.3 更新一条数据;指定键值;存在就更新,不存在就插入
data = {'msg':'指定只更新msg___1'}
client.test.test.update({}, {'$set':data}, upsert=True)
2.5.4 更新多条数据;指定键值;存在就更新,不存在就插入
data = {'msg':'指定只更新msg___2'}
client.test.test.update({}, {'$set':data}, multi=True, upsert=True)
2.6 delete_one()删除一条数据
collection.delete_one({"name":"test10010"})
2.7 delete_many()删除全部数据
collection.delete_many({"name":"test10010"})
3. pymongo模块其他api
查看pymongo官方文档或源代码 http://api.mongodb.com/python/current/
小结
掌握pymongo的增删改查的使用
掌握权限认证的方式使用pymongo模块
本文同步分享在 博客“不一样的花朵”(CSDN)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
python做前端mongodb_Python爬虫之mongodb和python交互相关推荐
- Python爬取豆瓣音乐存储MongoDB数据库(Python爬虫实战1)
Python爬取豆瓣音乐存储MongoDB数据库(Python爬虫实战1) 1. 爬虫设计的技术 1)数据获取,通过http获取网站的数据,如urllib,urllib2,requests等模块: ...
- python urllib dns 缓存_新手用Python做一个网页爬虫
咱们好哈,最近博主在学习Python,学习时期也遇到一些问题,获得了一些经历,在此将自个的学习体系地整理下来,假如咱们有爱好学习爬虫的话,能够将这些文章作为参阅,也期待咱们总共同享学习经历. 首要py ...
- python基础语法加爬虫精进_从Python安装到语法基础,这才是初学者都能懂的爬虫教程...
Python和PyCharm的安装:学会Python和PyCharm的安装方法 变量和字符串:学会使用变量和字符串的基本用法 函数与控制语句:学会Python循环.判断语句.循环语句和函数的使用 Py ...
- 用python做舆情分析系统_如何用Python做舆情时间序列可视化?
如何批量处理评论信息情感分析,并且在时间轴上可视化呈现?舆情分析并不难,让我们用Python来实现它吧. 痛点 你是一家连锁火锅店的区域经理,很注重顾客对餐厅的评价.从前,你苦恼的是顾客不爱写评价.最 ...
- 0基础学python做什么工作好-零基础学Python,越早明白这些,越快找到好工作!...
如何学习python,就能仅靠python得到好工作? 读者A:自学python一年,用于写网络爬虫,但一直觉得自己对python理解还很低层.现在大三,打算再用一年时间学习python,让自己对这们 ...
- 0基础学python做什么工作好-零基础自学Python多久可以找工作?
零基础自学Python多久可以找工作?零基础自学3个月很难找到工作.如果全职学习Python的话,学习6个的时间,不一定能达到找到工作的水平,掌握项目经验还需要更久,达到企业需要的岗位要求还需要多练习 ...
- 0基础学python做什么工作好-如何快速学习Python编程?可以做什么职业?
近些年Python热度不减,一直占据编程语言排行榜的前几位.人生苦短,让我们来学一学Pyhotn吧,找到一份满意的工作还是没有问题的. Python语言本身所具有的优势,决定了从事Python学习的开 ...
- 没有python基础直接学爬虫_只针对 Python 爬虫,该如何学习?
最近刚好准备开始写一个 从零开始写python爬虫的系列专栏 希望能帮助到你. 这里先把导言部分贴过来 ------------------------------------------- 从零开始 ...
- python中国大学排名爬虫写明详细步骤-python中国大学排名爬虫
python 中国大学排名爬虫 首先,给一个最好大学网URL:http://www.zuihaodaxue.cn/zuihaodaxuepaiming2016.html, 点击这里进入 . 功能描述 ...
最新文章
- Java高并发编程基础之AQS
- 在ORACLE中对存储过程加密
- c语言外部中断th0,帮忙看看void int0() interrupt 1 //采用中断0 控制节拍 { TH0=0xd8; TL0=0xef; n--; } 啥意思...
- .NET中如何通过文本框中按回车键进行的提交数据
- docker 镜像上传至hub时报错,提示:denied: requested access to the resource is denied
- 光感是什么_Olay5款热门精华:淡斑小白瓶VS光感小白瓶如何选?超A瓶不太A
- java 遍历类路径
- 二级c语言作答文件不存在,全国计算机等级考试二级C语言上机考试题库及答案...
- CF1119H-Triple【FWT】
- php在页面中实现累加,小白问个php累加问题
- 将一个数的字节顺序逆置
- 电子类公司笔试题精选
- oracle把ascii吗,oracle中ascii函数及to_char函数使用及编码间的转换
- 【15】万魂杀服务器开发之原始NIO、Mina、Netty使用
- 多元统计分析matlab,matlab与应用多元统计分析..doc
- JVectorMap矢量地图用在小程序显示
- 对于软件,我是认真的
- Access to XMLHttpRequest at ‘http127.0.0.18000server‘ from origin ‘http127.0.0.15500‘ has
- Java项目:学生综合素质评价系统(java+SSM+thymeleaf+layui+Mysql)
- 肢体语言心理学+FBI阅人术(行为心理学) 用最短的时间了解一个人
热门文章
- 苹果再下一盘很大的棋?Metal优化作用及影响浅析
- 推荐一款代码神器,代码量至少省一半! 1
- 利刃 MVVMLight 2:Model、View、ViewModel结构以及全局视图模型注入器的说明
- 基于linux实现DNS互联网的搭建
- 那些炫酷的特效--QQ空间+VUE
- 分布式文件系统之MogileFS的使用
- 选择不相交区间(贪心:求不相交区间最多个数)
- 计算机打不出汉字怎么办,电脑打不出字怎么办,教您电脑打不出字怎么解决
- python怎么批量处理数据_python如何批量处理excel数据?_后端开发
- openwrt首次登录密码_什么是路由器登录密码 路由器登录密码介绍【详解】