MongoDB学习笔记(一)

mongodb一直有所耳闻,但由于公司业务架构中并未重度使用(涉及到的地方开发人员自行维护并未接入主体架构),所以一直以来没有接触。近期有空,准备学习一下。本套笔记纯当做个记录,记录一下我的mongodb学习历程。也希望能够帮助浏览到的朋友们,新手可以跟我一起学习进步!高手请飘过~

当然,学习一款数据库,第一步要找到它的官网和官方文档。

官方网站:不让放
官方文档:不让放

老实说,界面风格非常符合我的审美!有点喜欢它了~
简单读了它的介绍,我总结了几点特性:

  • NoSQL类型之文档类型数据库
  • 部署,扩展都很灵活
  • 内生的集群特性

其他还有什么高性能,API,支持多存储引擎blabla,没啥用~
这里产生了几个疑问,留待后续学习去回答,我觉得带着问题学习比较有效果。

1.MongoDB documents are similar to JSON objects.文档中说mongodb存储的基本单元叫文档,类似于mysql当中的一条记录。跟大名鼎鼎的JSON对象类型很像,后续也读到了,是BSON类型。那么到底两者区别在哪里?

2.读到了API这一节,发现mongodb的API是自己独有的,也就是说不能使用SQL语句进行查询,即存在学习成本,那么,它的优势是什么?这种js类的API是否会导致查询性能下降,这个很关键!

1.jpg

3.有预感,之前也有耳闻,mongodb的集群功能是它的一个靓点也是优势,后面的学习中要重点观察它集群方面的设计思想!

好了,简单了解之后,我用自己的话总结了一下:mongodb是一个非关系型数据库,采用库-表-行的形式进行存储,官方叫库-集合-文档(whatever),不拘泥于schema设计,也就是说mysql中的在线DDL老大难问题在这里不存在!

接下来,就该动手了,今天计划是先把它装上,并插入第一条数据!

安装这里,官方文档中给出了yum安装,二进制包安装,docker方式等,至于docker,鉴于数据库这种状态机,最好还是别用了,毕竟哪一天真的用于生产了还是单独部署稳妥。(by the way!我个人审美:非状态机强烈建议用docker,它真的方便...... 状态机强烈不建议用docker,不要听云厂商的忽悠!不要听云厂商的忽悠!不要听云厂商的忽悠!)

image.png

mongodb也分为企业版,免费版,以及提供了高级客户端mongodb shell,这点怎么跟mysql一模一样。
因为是新接触,这次先用yum快速装一下,后续再去了解二进制包方式。
安装步骤如下:

1.安装yum源:
vi /etc/yum.repos.d/mongodb-org-6.0.repo
[mongodb-org-6.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/6.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc

2.安装默认最新版
yum install -y mongodb-org
安装后的默认路径:
/var/lib/mongo (the data directory)
/var/log/mongodb (the log directory)
如果想要查看默认安装的各类信息可以执行以下命令:
systemctl cat mongod
可以发现配置文件为:/etc/mongod.conf,后续修改配置可以调整这个文件。
这里默认路径就不改了,今天首要目标是先用起来!

3.启动
查看进程管理模式:
ps --no-headers -o comm 1
应该都是systemd吧?
启动:
systemctl daemon-reload
systemctl start mongod
查看是否启动:
systemctl status mongod
连接:
mongosh

检查后台进程,发现27017端口启动了,它就是mongodb的服务端口:


image.png

连接后如图:


image.png

已经可以正常使用了。接下来插入一条数据试试:
按照官方给出的例子粘贴并执行:
image.png

可以看到生成了一个ObjectID,这个很像mysql的主键,应该是唯一的。带着疑问进行一次查询:


image.png

印证了猜想,也就是说,mongodb插入数据时,不需要指定主键,它会自动生成一个字段叫做_id,作为本条记录的唯一标识。

观察了一下,发现mongodb的API都是函数的形式,类似 db.表.xx() 的形式。看来有一定的学习成本,但是在如今有GPT加持的时代,问题不大~

上面find函数中的item:"canvas" 应该就是类似于where过滤条件,所以试试不加参数:


image.png

依然能够查到数据,推理这个就是select * from inventory;

本次先到这里,最后感叹一句,mongodb官方文档整理的是真好,集成度很高,不用到处找这找那,这种有大公司保障的产品确实靠谱。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,794评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,050评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,587评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,861评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,901评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,898评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,832评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,617评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,077评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,349评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,483评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,199评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,824评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,442评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,632评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,474评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,393评论 2 352

推荐阅读更多精彩内容