python操作MongoDB数据库(1)查询
对于用爬虫爬取下来存储到MongoDB数据库中的数据,为了使用这些数据,我们应该得知道一些python对于MongoDB的一些操作。本文只涉及操作,对于数据库的安装和启动暂不涉及。本文参考了他的文章
首先最基本的增删改查,哦,不对,首先是先连接上数据库。
那么python怎么连接上数据库呢?
- 安装驱动 。 conda install pymongo(我用的是Anaconda3)
- 在程序中 。import pymongo
- 在程序中建立连接。 pymongo.MongoClient('127.0.0.1', 27017)[数据库名] [集合名]
到这里,我就连接上数据库了。
现在我需要实现一些基本操作了,首先是增删改查。
对于我而言,我首先关注的是查询操作,获取我需要的信息。
- 先导包和建立连接
import pymongo
my_col = pymongo.MongoClient('127.0.0.1',27017)['爬虫']['英雄联盟人物资料']
2.查询该集合里的所有数据。
mycol.find()
'''
这一行代码在可视化界面Robo 3T -1.2上会输出所有数据,但是在ipython中却不会输出数据,而是显示:
<pymongo.cursor.Cursor at 0x1b8591a7da0>
看着是游标对象,那么我们来看看它的数据类型 type(mycol.find()),输出为:
pymongo.cursor.Cursor
对于这个对象,我该怎么获取数据呢。我尝试将它转换类型list(mycol.find()),输出结果为我需要的数据的列表类型。由此可知,mycol.find()是一个迭代器对象,那么也可以通过for来遍历。
'''
for i,j in enumerate(mycol.find()):print('{}:{}'.format(i+1,j))
print(i) #145
上面就会输出所有的json格式数据以及对应的文档个数。由于文档过多我选择一个文档的一些域展示:
{"_id" : ObjectId("5d886da0c763872230399216"),"hero" : {"heroId" : "92","name" : "放逐之刃","alias" : "Riven","title" : "锐雯","roles" : [ "fighter", "assassin"],"shortBio" : "<p>曾担任诺克萨斯军队剑士长的锐雯,如今在那片她曾要征服的土地上流浪。她通过自己信念的力量和野蛮的行事风格在军中不断晋升,因此获得了一把传奇的符文之刃和自己的战团作为奖赏——然而在艾欧尼亚的前线上,锐雯对祖国的信仰遭到了考验,并最终粉碎。她切断了与帝国的一切关联,在分崩离析的世界中找寻自己的归宿,即使纷飞的谣言传说着诺克萨斯已经重铸……</p>","camp" : "","attack" : "8","defense" : "5","magic" : "1","difficulty" : "8","hp" : "558.4800","hpperlevel" : "86.0000","mp" : "0.0000","mpperlevel" : "0.0000","movespeed" : "340.0000","armor" : "33.0000"}
现在我能获取所有的数据,但是有个问题,这样每次都会遍历集合里所有的文档,对于小数据集没什么感觉但是碰到大数据集,这种查询就会很慢 。那该怎么办呢?我们可以缩小范围。
这就涉及到MongoDB的条件操作符:
$gt
$gte
$lt
$ne
$eq
为了便于记忆,发现它们是英文缩写:
$gt -------- greater than >
$gte --------- gt equal >=
$lt -------- less than <
$lte --------- lt equal <=
$ne ----------- not equal !=
$eq -------- equal =
使用这些条件操作符,就能缩小范围从而提高查询效率了。
那么如果我需要查询文档里域的子域的子域,我该怎么做呢?MongoDB里多级域用.连接。
比如我想查询文档里name值为'放逐之刃'的文档:
for i in mycol.find({'hero.name':'放逐之刃'}):print(i)
这里获取到了英雄名字为放逐之刃的文档了。
剩下的就是提取查询到的文档里面自己感兴趣的数据了。(对什么感兴趣?当然是人物台词链接和皮肤链接了:))
python操作MongoDB数据库(1)查询相关推荐
- Python 操作 MongoDB 数据库!
作者 |黄伟呢 来源 |数据分析与统计学之美 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 先来看看MySQL与MongoDB 概念区别 ...
- java连接mongodb_第78天: Python 操作 MongoDB 数据库介绍
MongoDB 是一款面向文档型的 NoSQL 数据库,是一个基于分布式文件存储的开源的非关系型数据库系统,其内容是以 K/V 形式存储,结构不固定,它的字段值可以包含其他文档.数组和文档数组等.其采 ...
- python操作mongodb数据库
2019独角兽企业重金招聘Python工程师标准>>> 一.MongoDB 数据库操作 连接数据库 import pymongo conn = pymongo.Connection( ...
- mongo go 查询指定字段_Go语言 操作MongoDB数据库批量查询
数据操作是编程中避免不了的操作,这也就牵扯到了数据库的增删改查,而实际工作中我们最常用到的是增改查.今天要介绍的是Go 语言查询MongoDB数据库. 操作mongodb使用的包是"http ...
- python mongodb 异步_【转】Python操作MongoDB数据库
前言 MongoDB GUI 工具 PyMongo(同步) Motor(异步) 后记 前言 最近这几天准备介绍一下 Python 与三大数据库的使用,这是第一篇,首先来介绍 MongoDB 吧,,走起 ...
- 【转】Python操作MongoDB数据库
前言 MongoDB GUI 工具 PyMongo(同步) Motor(异步) 后记 前言 最近这几天准备介绍一下 Python 与三大数据库的使用,这是第一篇,首先来介绍 MongoDB 吧,,走起 ...
- python操作mongodb数据库-删除集合、集合数据
删除集合单个文档 使用 delete_one() 方法来删除一个文档,该方法第一个参数为查询对象,指定要删除哪些数据. import pymongomyclient = pymongo.MongoCl ...
- python 操作mongodb数据库参考文档
参考文档链接:https://pypi.python.org/pypi/pymongo pymongo的参考文档http://api.mongodb.com/python/current/tutori ...
- python数据库模糊查询_Python操作mongodb数据库进行模糊查询操作示例
本文实例讲述了Python操作mongodb数据库进行模糊查询操作.分享给大家供大家参考,具体如下: # -*- coding: utf-8 -*- import pymongo import re ...
最新文章
- 0730------Linux网络编程----------服务器端模型(迭代,多进程,多线程,select,poll,epoll 等)...
- python 测试字符串类型_【教程】如何用Python中的chardet去检测字符编码类型
- Lombok,AutoValue和Immutables,或如何编写更少,更好的代码返回
- Oracle数据库游标操作
- iOS-数据持久化-属性列表
- telegram定时消息_ActiveMQ(18):Message之延迟和定时消息投递
- 接受字符串参数,返回一个元组,并分别统计字符串中大小写的个数
- WebLogic 控制台乱码
- scrapy信号扩展
- 苹果mac专业文献管理软件:endnote x9
- 机器学习中的数学——优化技术:参数初始化策略
- 阿里云服务器如何购买?三种购买方式图文教程
- 向量代数与空间解析几何
- Spring、SpringMVC、Mybatis常见面试题总结
- DM——数据处理基础之数据、数据统计特性
- umeditor 踩坑
- html5笔试题dw,网页制作笔试选择题
- 肯德尔系数怎么分析_Kendall Rank(肯德尔等级)相关系数
- CAS 统一身份认证(一):系统编译与运行
- 批量搜索php文件,php文件批量下载