草庐IT

MongoDB是什么?非关系型数据库的优点?安装使用教程

旷世奇才李先生 2023-10-23 原文

哈喽!大家好,我是小奇,一位热爱分享的程序员
小奇打算以轻松幽默的对话方式来分享一些技术,如果你觉得通过小奇的文章学到了东西,那就给小奇一个赞吧
文章持续更新,可以微信搜索【小奇JAVA面试】第一时间阅读,回复【资料】更有我为大家准备的福利哟!回复【项目】有我为大家准备的一些项目源码。

文章目录

一、前言

书接上回,由于球姐都有孩子了,所以我决定不去球姐的公司的,尽管她很舍不得我,但是我也要走,虽然我很渣,但是我还是有点道德。。。

所以我决定还是先回老家吧,毕竟身上的经费已经不多了,不足以我再在北京漂下去了。

我又辗转几趟地铁,然后坐上了回老家的大巴车,看着车窗外从高楼大厦变为破旧的平房,犹如我的心情一样从激情满满的少年变为了忧郁王子。。。

终于到达了家乡的镇上,还是家乡的空气吸起来感觉舒服,拦了一辆三轮,准备回村,这三轮上的广告我是用不上了。。。

乘坐了20分钟的三轮终于到了我们人才村门口,远远的看见村口坐了一排人,我就料定了村里指定又有好戏看了,我赶紧过去打听打听。

我:“几位奶奶歇着呢”。

张奶奶:“哎呀小奇回来了呀,你真会挑时候,正好赶上看热闹了”。

我:“啥热闹呢?”。

王奶奶:“就是刘婶她家孩子狗蛋,逃学上网吧被老师逮住了,她妈正打她呢”。

我:“嗨,我当多大事呢,不就是上网吧吗,劝劝不就行了”。

刘奶奶:“我们可劝不住,小奇你跟刘婶关系好,你去劝劝”。

我:“得,我去就我去”。

走了过去发现狗蛋被刘婶堵在了门口,刘婶正拿着他们家祖传二十年的衣服架在教训着狗蛋。。。

我:“哎呀刘婶,我都听说了,不就上个网吧嘛,谁小时候没有上过网吧呢,说两句孩子知道错了就行了”。

刘婶:“这孩子每次考试都给我考不及格,我怎么教育也没用,看来只能打了”。

我:“那肯定是你的教育方式不对,狗蛋你跟小奇哥说一下你妈平时都怎么教育你的呀”。

狗蛋:“我妈说要好好学习,不然长大了以后就跟小奇哥哥一样找不到工作,娶不上媳妇”。

(我特么的。。。)

刘婶:“哎呀小奇别生气啊,主要是拿别人举例子别人都混的还可以,拿你举例子狗蛋就很害怕,因为你混的是真的惨。。。”

我:“得,那我回家歇着了”。

刘婶:“别生气啊小奇,我还等着听你说八卦呢,有什么新的八卦吗给说说”。

我:“等我什么时候心情好了再跟你说吧,我走了”。

推开家里那破旧的木头门,看到院子里一人多高的杂草,心里很不是滋味,进了屋躺到了床上回想起刚刚狗蛋说的话,我确实工作也没有找到,媳妇更别说在哪了,悲伤突然涌上心头。。。

突然手机响了起来,我接了电话。

我:“喂您好”。

对面:“您好,请问是小奇吗”。

我:“是我,你是?”。

对面:“我是XXX公司的,我看到hr推给我你的简历,我感觉还不错,你什么时候方便来现场面试一下”。

我:“现在不方便现场面试了,我现在刚回老家,除非你们报销我来回路费,还有一天的误工费”。

对面:“您现在不是没有工作吗,怎么还有误工费呢?”。

我:“我在家锄院子里的杂草呢,要是请人干一天怎么也得50块钱吧”。

对面:“好吧,那你现在方便吗?我们现在线上面试一下吧”。

我:“好的”。

二、面试

面试官:“我看你简历上写的精通MongoDB,是真的吗?”。

我:“还好吧,都是面试官们抬爱,搞得我也膨胀了起来”。

面试官:“那你简单说一下MongoDB是什么吧”。

我:“Mongodb是一个基于分布式文件存储的数据库,是一款非关系型的数据库”。

面试官:“非关系型数据库有什么优点呢?”。

1、非关系型数据库存储数据的格式是key,value形式,更加符合程序员的思维方式,没有固定的数据类型。
2、非关系型数据库都是基于内存存储,比关系型数据库查询速度更快。

三、关系型数据库和非关系型数据库概念的区别

面试官:“那你说一下非关系数据库和关系型数据库概念上有什么区别吗”。

我:“在我们比较常用的关系型数据库中我们知道一个数据库中有表,每张表中有多个列,然后表之间有关联关系”。

我:“而在菲关系型数据库中没有表的概念,而是换成集合的概念,就是一个数据库中有多个集合,然后集合中没有列的概念,是字段的概念,而集合之间的关系是通过将其中一个集合中的数据放入到另一个集合中来表示的”。

四、MongoDB的安装

面试官:“那你说一下MongoDB的安装过程,和基本语法有哪些吧”。

1、下载

MongoDB下载地址: https://www.mongodb.com/try/download/community

2、安装

双击打开安装包,然后下一步

接受协议,然后下一步

安装完整版

选择数据存放的路径和日志存放的路径

下一步,这里取消默认的勾选可视化工具

install

完成安装

3、配置环境变量

检测是否安装成功mongodb,打开cmd命令窗口输入mongod,证明启动mongodb服务成功。

连接mongodb,输入命令mongo,这样证明连接成功。

4、图形化界面mongodbmanager下载地址:https://www.mongodbmanager.com/download-mongodb-manager-free

五、MongoDB的基本语法

1、插入语法db.[集合名称].insert({要插入的数据});

db.stus.insert({name:“zhubajie”,age:28});

2、查询语法db.[集合名称].find();

db.stus.find();

3、修改语法db.[集合名称].update();

db.stus.update(
{“_id” : ObjectId(“627fd8c54394fde2bb137b80”)},
{$set:{
name:“sunwukong”,
age:30
}
}
)

4、删除语法db.[集合名称].remove();

面试官:“小伙子不错呀,什么时候能回北京入职呢”

我:“额。。。等等吧,现在北京疫情太严重了”

面试官:“行,那你来了北京一定来我们公司上班啊”

我:“额。。。这个跟你承诺不了,万一还有别的好公司给我打电话呢”。

面试官:“来吧,条件好商量”

我:“我考虑考虑吧”。

六、总结

这里关于MongoDB还没有整理完毕,文章后面持续更新,建议收藏。

文章中涉及到的命令大家一定要像我一样每个都敲几遍,只有在敲的过程中才能发现自己对命令是否真正的掌握了。

如果觉得我的文章还不错的话就点个赞吧,另外可以微信搜索【小奇JAVA面试】阅读更多的好文章,获取我为大家准备的资料。回复【项目】更有开源项目持续更新分享给大家。

有关MongoDB是什么?非关系型数据库的优点?安装使用教程的更多相关文章

  1. ruby - 如何使用 Nokogiri 的 xpath 和 at_xpath 方法 - 2

    我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div

  2. ruby - 使用 RubyZip 生成 ZIP 文件时设置压缩级别 - 2

    我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看ruby​​zip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d

  3. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  4. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

    很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

  5. ruby - 在 Ruby 中使用匿名模块 - 2

    假设我做了一个模块如下:m=Module.newdoclassCendend三个问题:除了对m的引用之外,还有什么方法可以访问C和m中的其他内容?我可以在创建匿名模块后为其命名吗(就像我输入“module...”一样)?如何在使用完匿名模块后将其删除,使其定义的常量不再存在? 最佳答案 三个答案:是的,使用ObjectSpace.此代码使c引用你的类(class)C不引用m:c=nilObjectSpace.each_object{|obj|c=objif(Class===objandobj.name=~/::C$/)}当然这取决于

  6. ruby - 使用 ruby​​ 和 savon 的 SOAP 服务 - 2

    我正在尝试使用ruby​​和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我

  7. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  8. ruby-on-rails - Rails - 子类化模型的设计模式是什么? - 2

    我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co

  9. ruby-on-rails - 'compass watch' 是如何工作的/它是如何与 rails 一起使用的 - 2

    我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t

  10. ruby - 使用 ruby​​ 将 HTML 转换为纯文本并维护结构/格式 - 2

    我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h

随机推荐