对于用爬虫爬取下来存储到MongoDB数据库中的数据,为了使用这些数据,我们应该得知道一些python对于MongoDB的一些操作。本文只涉及操作,对于数据库的安装和启动暂不涉及。本文参考了他的文章

首先最基本的增删改查,哦,不对,首先是先连接上数据库。

那么python怎么连接上数据库呢?

  1. 安装驱动 。 conda  install pymongo(我用的是Anaconda3)
  2. 在程序中 。import pymongo
  3. 在程序中建立连接。 pymongo.MongoClient('127.0.0.1', 27017)[数据库名] [集合名]

到这里,我就连接上数据库了。

现在我需要实现一些基本操作了,首先是增删改查。

对于我而言,我首先关注的是查询操作,获取我需要的信息。

  1. 先导包和建立连接
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)查询相关推荐

  1. Python 操作 MongoDB 数据库!

    作者 |黄伟呢 来源 |数据分析与统计学之美 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 先来看看MySQL与MongoDB 概念区别 ...

  2. java连接mongodb_第78天: Python 操作 MongoDB 数据库介绍

    MongoDB 是一款面向文档型的 NoSQL 数据库,是一个基于分布式文件存储的开源的非关系型数据库系统,其内容是以 K/V 形式存储,结构不固定,它的字段值可以包含其他文档.数组和文档数组等.其采 ...

  3. python操作mongodb数据库

    2019独角兽企业重金招聘Python工程师标准>>> 一.MongoDB 数据库操作 连接数据库 import pymongo conn = pymongo.Connection( ...

  4. mongo go 查询指定字段_Go语言 操作MongoDB数据库批量查询

    数据操作是编程中避免不了的操作,这也就牵扯到了数据库的增删改查,而实际工作中我们最常用到的是增改查.今天要介绍的是Go 语言查询MongoDB数据库. 操作mongodb使用的包是"http ...

  5. python mongodb 异步_【转】Python操作MongoDB数据库

    前言 MongoDB GUI 工具 PyMongo(同步) Motor(异步) 后记 前言 最近这几天准备介绍一下 Python 与三大数据库的使用,这是第一篇,首先来介绍 MongoDB 吧,,走起 ...

  6. 【转】Python操作MongoDB数据库

    前言 MongoDB GUI 工具 PyMongo(同步) Motor(异步) 后记 前言 最近这几天准备介绍一下 Python 与三大数据库的使用,这是第一篇,首先来介绍 MongoDB 吧,,走起 ...

  7. python操作mongodb数据库-删除集合、集合数据

    删除集合单个文档 使用 delete_one() 方法来删除一个文档,该方法第一个参数为查询对象,指定要删除哪些数据. import pymongomyclient = pymongo.MongoCl ...

  8. python 操作mongodb数据库参考文档

    参考文档链接:https://pypi.python.org/pypi/pymongo pymongo的参考文档http://api.mongodb.com/python/current/tutori ...

  9. python数据库模糊查询_Python操作mongodb数据库进行模糊查询操作示例

    本文实例讲述了Python操作mongodb数据库进行模糊查询操作.分享给大家供大家参考,具体如下: # -*- coding: utf-8 -*- import pymongo import re ...

最新文章

  1. 0730------Linux网络编程----------服务器端模型(迭代,多进程,多线程,select,poll,epoll 等)...
  2. python 测试字符串类型_【教程】如何用Python中的chardet去检测字符编码类型
  3. Lombok,AutoValue和Immutables,或如何编写更少,更好的代码返回
  4. Oracle数据库游标操作
  5. iOS-数据持久化-属性列表
  6. telegram定时消息_ActiveMQ(18):Message之延迟和定时消息投递
  7. 接受字符串参数,返回一个元组,并分别统计字符串中大小写的个数
  8. WebLogic 控制台乱码
  9. scrapy信号扩展
  10. 苹果mac专业文献管理软件:endnote x9
  11. 机器学习中的数学——优化技术:参数初始化策略
  12. 阿里云服务器如何购买?三种购买方式图文教程
  13. 向量代数与空间解析几何
  14. Spring、SpringMVC、Mybatis常见面试题总结
  15. DM——数据处理基础之数据、数据统计特性
  16. umeditor 踩坑
  17. html5笔试题dw,网页制作笔试选择题
  18. 肯德尔系数怎么分析_Kendall Rank(肯德尔等级)相关系数
  19. CAS 统一身份认证(一):系统编译与运行
  20. 批量搜索php文件,php文件批量下载

热门文章

  1. java压缩json_如何在Java中压缩JSON并在Javascript中解压缩
  2. 数据挖掘可视化+机器学习初探
  3. Centos:Xshell 修改Nginx配置文件
  4. 5个前端练手项目(html css js canvas)
  5. Blender基础技巧小结(三)
  6. 英特尔固态盘 说明书PDF
  7. 基本符号有_工业管道的基本识别色、识别符号和安全标识
  8. 工作积累最常用的shell脚本编程基础,一文扫盲流程控制语句
  9. 计算机应用基础教学总结新老师,计算机应用基础教学总结..doc
  10. cximage库实现图片重叠效果