美文网首页
关于Mongodb4.0上目前遇到的所有坑,写给自己也写给各位看

关于Mongodb4.0上目前遇到的所有坑,写给自己也写给各位看

作者: 一碗好吃的乌冬面 | 来源:发表于2018-09-25 21:47 被阅读0次
最后更新时间2018/10/16  13:47

'文章为原创转载请注明来源,谢谢'
---------------------------------------------
"目前对Mongodb了解的比较少还在持续更新中"

由于自己最近在学习Scrapy框架的东西,考虑到要用什么数据库进行储存,然后在网上翻了大量的文章去选择合适的数据库,翻来翻去都说Mongodb比较好,然后这次就尝试一下Mongodb。

这篇文章将分为两个部分,1.Mongodb的优点,2.我在学习过程中遇到的坑

1.我们先来说一说Mongodb为什么好?好在哪里

假如说我们对同一个网站进行大规模的爬取,或者是说对这个网站进行经常(24h*365day)性的爬取

通过Navicat来设计MySQL表
设计好了就像一个大型的Excel

因为我们爬取网页的数据之前要通过MySQL来设计自己的数据库结构值的类型
网页上的数据字段会经常更新,或者是缺失,这对结构化的MySQL库数据库来说是有点不利的,因为你要经常去调整它(增加或删除它的字段)

下面是我摘抄一句别人说的话

我的数据分析项目要处理的数据集,但它的记录有一个很大的问题:许多字段缺失,很多字段要么格式不一致或者过时了。换句话说,我的数据集非常脏

接下来我们就要使用到Mongodb的数据库

它写进数据库的语法就像json一样,不存在着你预先去设计数据库的字段或者是它的和数据的类型

  • 不用去预先设置数据库的字段和类型
  • 比如说在爬取数据的时候碰到一个不知道的数据类型或者是说一个新的字段的时候,它会自动拓展到数据库类型里
附上图

举个例子,我们现在有三列的数据,当我们想拓展到第四列的数据的时候,就不需要去数据库表里面重新去写预先设计字段

手上有3列的数据,By.Mongodb Compass
手上有4列的数据,By.Mongodb Compass
可视化工具来自官方的Mongodb Compass

我们可以看到图2的几种变化就是
第一个就是我在price字段里面设置了一个data形式的数据
(
也就是说添加的数据是可以随意变化的,没有MySQL限制的那么死,
如果说我们写入MySQL的数据与当初设定的数据类型不符,
到时候自己得爬虫就会出现莫名其妙的报错,都不知道从哪儿去找
)

第二个就是我增加了一个新的一列"你给我哩GiaoGiao"
如果某一列里面没有任何数据,那么这一列也就会自动消失,假设说我删了图2里面的最后一行,那么他最后一列也就会消失,恢复到图1的状态

下图我们可以看到不按顺序和不按类型的数据插入数据成功了
另外说一点,箭头标注的它生成的id是全局唯一的
全局唯一ID

2.接下来说我在Mongodb上遇到的坑

由于我用的是最新的4.0版本,我最开始以为我遇到的各种问题都是旧版本里面的文章找不到的
比如

我最开始使用Navicat这个软件,去连上Mongodb,一直都是显示连接成功,但就是死活不显示数据表
然后去谷歌和百度上去搜这些文章,有的人说数据库的引擎不对改一下,试过了,什么安装环境不对,我也试过了,什么配置环境不对,我也试过,反正七七八八的问题我都试过了之后!!!

我就怀疑是不是Navicat的这个软件有问题,随后我转战到了Studio3T

  • 对比三款Mongodb的可视化工具

当我通过Studio3T的时候,去连接数据库,它就弹出了,我数据库里面所有的表。
然后Navicat呢,也就正常显示了(但是还是显示不全)


中间的一款是Mongodb官方可视化工具

最后总结一下,

我最开始学习的时候,以为它要像MySQL一样预先去设计数据库表的结构,然而我并没有找到在哪里去设计数据库表的结构,这是一个很颠覆常识性的东西
并不要对它的数据表进行先任何定义,也就是说可以随意添加,可以随意拓展,是一个高度可拓展的一款数据库,写入数据就像json的语法一样
所以说开始把数据表创建好,直接写入数据就可以了

{
    "title": "苹果",
    "price": "8",
    "data": "甜"
}

这就是我目前的研究结果。
下一步我将去学习如何设置Mongodb数据库的密码和端口号,然后并用Python写入数据

Mongodb4.0启动文档Ubuntu

'Ubuntu每次开机都要,启动Mongodb服务'

sudo service mongod restart

相关文章

  • 关于Mongodb4.0上目前遇到的所有坑,写给自己也写给各位看

    由于自己最近在学习Scrapy框架的东西,考虑到要用什么数据库进行储存,然后在网上翻了大量的文章去选择合适的数据库...

  • 绝对不可错过的绘本

    如果说世界上所有的童话故事都是写给大人看的,那么,我想,世界上所有的绘本也大抵都是写给大人看的。 我并不对绘本情有...

  • 注意!这才是微信分享文章的正确方式

    导言 写作,可以是写给自己看的,也可以是写给别人看的。 当然,大多数人是写给别人看的。 我们都希望,渴望,自己绞尽...

  • 听说微博可以说给自己听

    不知在哪儿看到的,QQ是写给所有人看的,微信是写给亲朋好友看的,而微博,是写给自己看的。所以,此刻我迫不及待,...

  • 文章写给谁看

    对外发布的文章,究竟是写给谁看?写给自己看,还是写给别人看。显而易见,对外发布的文章,是写给别人看。既然是写给别人...

  • 2016年1月计划书单

    1,世界上所有童话都是写给大人看的 2, 小词大雅

  • 如何写一份好的读书笔记

    写给谁看 1.写给自己看 2.写给其他人看 3.写给想要快速了解的人看 为什么要写 1.对自己的一...

  • 女人需要的是什么

    这是写给男人的话,也写给自己的话,同时也写给所有困顿中的人。 提笔之前,总有好多话说,但是真正开始写,又不知道说些...

  • 如何从读者的角度写文章?

    文章大凡分为两类,一类是写给自己看的,一类是写给别人看的。写给自己看的文章只为一个人服务,写给别人看的文章就是为众...

  • 惨不忍睹的结题报告,我不想说话

    我也不想看下去了,这是写给论文的人写的吗!!!!这是写给人看还是写给猪看

网友评论

      本文标题:关于Mongodb4.0上目前遇到的所有坑,写给自己也写给各位看

      本文链接:https://www.haomeiwen.com/subject/hblroftx.html