专栏首页最新最全的大数据技术体系一文快速入门MongoDB数据库

一文快速入门MongoDB数据库

文章目录
  • 前言
  • 🥁下载 MongoDB 之Windows版
  • 🥁下载 MongoDB之Mac版本安装
  • ✨一 MongoDB的应用场景
  • ✨二 MongoDB与Mysql的对比
    • 🍦MySQL是关系型数据库。
    • 🍦Mongodb是非关系型数据库(nosql ),属于文档型数据库。
    • 🍦Mysql和Mongodb应用场景的对比
  • ✨三 MongoDB的增删改查
    • 补充:✨ [studio3T的安装](https://studio3t.com/download/)
  • 总结

前言

想要入门MongoDB,首先需要下载MongoDB:

🥁下载 MongoDB 之Windows版

要在 Windows 系统上安装 MongoDB,首先需要在 MongoDB 的官网(https://www.mongodb.com/try/download/community)下载 MongoDB 的安装包,如下图所示:

下载 MongoDB 安装包

提示:下载前需要先注册/登陆 MongoDB 官网的账号。

安装 MongoDB 【步骤 1】双击运行我们刚刚下载的 .msi 格式的 MongoDB 安装包,在弹出的窗口种单击 Next,如下图所示:

运行 MongoDB 安装包

【步骤 2】接受用户许可协议,并单击 Next,如下图所示:

接受用户协议

【步骤 3】单击 Custom(自定义)按钮来自定义安装,如下图所示:

自定义安装

【步骤 4】修改安装目录,并单击 Next,如下图所示:

自定义安装目录

【步骤 5】选中“Install MongoD as a Service”,并在下面的选项中选择“Run service as Network Service user”,完成后单击 Next,如下图所示:

安装 Windows 服务

【步骤 6】取消“Install MongoDB Compass”的勾选(当然您也可以选择安装它,但这样就需要花费更久的安装时间),MongoDB Compass 是一个图形界面管理工具,后面如果需要我们也可以再单独下载(https://www.mongodb.com/try/download/compass)和安装它,完成上述操作后单击 Next,如下图所示:

取消“Install MongoDB Compass”的勾选

【步骤 7】单击“Install”按钮开始安装。

开始安装

【步骤 8】等待安装完成,单击“Finish”按钮退出安装程序即可完成安装。

完成安装 图:完成安装 验证安装 不出意外的话,完成上面的一系列操作后 MongoDB 就成功安装到您的电脑上了。想要验证安装是否成功,您可以打开“服务”,如果能在服务列表中找到 MongoDB Server,就说明 MongoDB 已经安装成功。

MongoDB Server 服务

🥁下载 MongoDB之Mac版本安装

在 Mac OS 系统下安装 MongoDB 与在 Linux 下安装比较相似,本节我们就来详细介绍一下 Mac OS 系统下如何安装 MongoDB。 下载 MongoDB 与在 Linux 系统下安装 MongoDB 相同,首先我们需要在 MongoDB 的官网获得 MongoDB 安装包的下载链接,如下图所示:

MongoDB 官网

得到下载链接后,使用cd命令进入 /usr/local 目录,然后使用wget命令下载 MongoDB 的压缩包,命令如下: cd /usr/local sudo wget https://fastdl.mongodb.org/osx/mongodb-macos-x86_64-4.4.3.tgz

安装 MongoDB 待压缩包下载完成后就可以尝试安装 MongoDB 了,具体的安装步骤如下:

【步骤 1】解压缩刚刚下载的压缩包,并将其重命名为 mongodb: sudo tar -zxvf mongodb-macos-x86_64-4.4.3.tgz # 解压 MongoDB 压缩包 sudo mv mongodb-osx-ssl-x86_64-4.0.17/ mongodb # 重命名解压得到的文件夹

【步骤 2】在 /usr/local/mongodb 目录下新建两个文件夹 data 和 log,用于存储 MongoDB 的数据和日志。 sudo mkdir -p /usr/local/mongodb/data sudo mkdir -p /usr/local/mongodb/log

使用如下命令为当前用户分配目录的读写权限: sudo chown biancheng /usr/local/mongodb/data sudo chown biancheng /usr/local/mongodb/log

其中“biancheng”为当前的用户名,您需要修改为您当前系统的用户名。

【步骤 3】配置 PATH。在终端中输入open -e .bash_profile命令打开 bash_profile 配置文件,然后将 MongoDB 的安装目录下的 bin 目录添加到环境变量中,如下所示: export PATH=${PATH}:/usr/local/mongodb/bin

编辑完成后保存并退出,然后使用source .bash_profile命令使配置立即生效。

【步骤 4】使用下面的命令来启动 MongoDB 服务: mongod --dbpath /usr/local/mongodb/data --logpath /usr/local/mongodb/log/mongo.log --fork

参数说明如下: –dbpath 用来设置数据的存放目录; –logpath 用来设置日志的存放目录; –fork 用来设置在后台运行。

至此 MongoDB 就安装完成了。 验证安装 您可以使用mongod -version命令来验证 MongoDB 是否安装成功,如果出现类似下面所示的内容,则说明 MongoDB 安装成功。 mongod -version

db version v4.0.10 git version: c389e7f69f637f7a1ac3cc9fae843b635f20b766 allocator: tcmalloc modules: none build environment: distmod: 2008plus-ssl distarch: x86_64 target_arch: x86_64

✨一 MongoDB的应用场景

网站实时数据的插入、更新、删除。 处理规模较大但是成本很高的数据(大尺寸、低价值数据) 对象或JSON的文本存储 不需要经常通过表计算的,对事务要求不高的数据。 一些应用层的缓存

社交场景,使用 MongoDB 存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人、地点等功能。 游戏场景,使用 MongoDB 存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式存储,方便查询、高效率存储和访问。 物流场景,使用 MongoDB 存储订单信息,订单状态在运送过程中会不断更新,以 MongoDB 内嵌数组的形式来存储,一次查询就能将订单所有的变更读取出来。 物联网场景,使用 MongoDB 存储所有接入的智能设备信息,以及设备汇报的日志信息,并对这些信息进行多维度的分析。 视频直播,使用 MongoDB 存储用户信息、点赞互动信息等。

这些场景都有数据量大写入操作频繁数据价值较低事务性要求不高的特点。

✨二 MongoDB与Mysql的对比

🍦MySQL是关系型数据库。

优势:

在不同的引擎上有不同 的存储方式。

查询语句是使用传统的sql语句,拥有较为成熟的体系,成熟度很高。

开源数据库的份额在不断增加,mysql的份额页在持续增长。

缺点:

在海量数据处理的时候效率会显著变慢。

🍦Mongodb是非关系型数据库(nosql ),属于文档型数据库。

文档是mongoDB中数据的基本单元,类似关系数据库的行,多个键值对有序地放置在一起便是文档,语法有点类似javascript面向对象的查询语言,它是一个面向集合的,模式自由的文档型数据库。

存储方式:虚拟内存+持久化。

查询语句:是独特的Mongodb的查询方式。

适合场景:事件的记录,内容管理或者博客平台等等。

架构特点:可以通过副本集,以及分片来实现高可用。

数据处理:数据是存储在硬盘上的,只不过需要经常读取的数据会被加载到内存中,将数据存储在物理内存中,从而达到高速读写。

成熟度与广泛度:新兴数据库,成熟度较低,Nosql数据库中最为接近关系型数据库,比较完善的DB之一,适用人群不断在增长。

优点:

快速!在适量级的内存的Mongodb的性能是非常迅速的,它将热数据存储在物理内存中,使得热数据的读写变得十分快。高扩展性,存储的数据格式是json格式!

缺点:

不支持事务,而且开发文档不是很完全,完善。

🍦Mysql和Mongodb应用场景的对比

1.如果需要将mongodb作为后端db来代替mysql使用,即这里mysql与mongodb 属于平行级别,那么,这样的使用可能有以下几种情况的考量: (1)mongodb所负责部分以文档形式存储,能够有较好的代码亲和性,json格式的直接写入方便。(如日志之类) (2)从datamodels设计阶段就将原子性考虑于其中,无需事务之类的辅助。开发用如nodejs之类的语言来进行开发,对开发比较方便。 (3)mongodb本身的failover机制,无需使用如MHA之类的方式实现。

2.将mongodb作为类似redis ,memcache来做缓存db,为mysql提供服务,或是后端日志收集分析。 考虑到mongodb属于nosql型数据库,sql语句与数据结构不如mysql那么亲和 ,也会有很多时候将mongodb做为辅助mysql而使用的类redis memcache 之类的缓存db来使用。 亦或是仅作日志收集分析。

✨三 MongoDB的增删改查

3.1 创建数据库

我们使用studio 3T创建数据库和collection,数据库名为mongo。如果不创建数据库,向mongoDB中插入数据会默认插入到test数据库中。

然后在数据库中添加集合(collection),集合名为student: 可以发现student集合已经被成功添加了:

MongoDB的读操作包括查询,而写操作包括插入、更新、删除,MongoDB中的所有写操作都是单个文档级别的原子操作,你可以指定查询、更新、删除标准或过滤器(查询、更新、删除更新的条件),以标识要查询、更新、删除的文档。过滤器可以理解为关系数据库的条件查询where子句的条件。 3.2 MongoDB的插入操作

插入操作完成向集合中插入文档,MongoDB提供了以下向集合中插入文档的方法:

db.collection.insertOne() 
//New in version 3.2 插入一条文档(document)
db.collection.insertMany() 
//New in version 3.2 插入多条文档(document)
db.collection.insert()//老版本语法 

MongoDB的insert的语法如上,更推荐使用insertOne和insertMany,分别用来插入一条和多条文档。注意,在实际使用时collection要改成待插入集合的名称,待插入文档(document)需要插入到对应集合(collection)中,否则会默认创建一个集合再插入进去。在这里我们插入一条文档到student集合中。

使用mongo数据库之前要执行语句:

use mongo

,执行完毕即可直接操作mongo数据库。

向student集合中插入单条文档(document),执行以下语句:

db.student.insertOne({"name": "bigsai","age":"22"})

插入多条文档(document),执行以下语句:

db.student.insertMany([{"name": "bigsai2","age":"22"},{"name": "bigsai3","age":"22"}])

打开student集合,会发现上面的文档(document)被成功插入了。

3.3 MongoDB的查询操作

查询操作完成从集合中查询文档,MongoDB提供了以下向集合中插入文档的方法:

db.collection.find()//查询文档,在括号内添加各种条件

你可以指定查询过滤器或条件以标识要返回的文档。当然MongoDB也支持各种条件查询,使用也非常简单,具体还需要查看官方文档(https://docs.mongodb.com/manual/tutorial/query-documents/),这里以查询student集合中数据字段age为22的文档为例,展示一下:

//db.student.find()//查询所有类似select * from student

db.student.find({"age":"22"})

可以看到查询结果如下,所有数据字段age为22的文档都被查询了出来。

3.4 MongoDB的更新操作

更新操作,又称修改操作,完成从集合中更新(修改)文档,MongoDB提供了以下更新集合文档的方法:

db.collection.updateOne() //3.2版中的新功能 更新一条文档记录

db.collection.updateMany() //3.2版中的新功能 更新多条文档记录

db.collection.replaceOne() //3.2版中的新功能 替换集合中的一个文档

在MongoDB中,更新操作只针对单个集合(db.collection中对应的collection)。MongoDB中的更新操作都是单个文档级别的原子操作,你可以指定更新标准或过滤器(更新的条件),以标识要更新的文档。当然MongoDB有update()方法但是已经被弃用。

我们将student集合中所有数据字段age为22的文档更新其数据字段name的值为bigsai2:

db.student.updateOne(

     {"age":"22"},//条件

     {$set:{"name":"bigsai2"}}//修改的值

 )

其中{“age”:“22”}为查询的条件即找到第一条数据字段age为22的文档,而{$set:{}}则用来修改文档对应数据字段的值。updateOne()执行成功只会更新第一条匹配的文档。

此时,你如果想将数据字段name为bigsai2的两条文档的数据字段age改成18,那么执行以下语句:

db.student.updateMany(

     {"name":"bigsai2"},

     {$set:{"age":"18"}}

 )

刷新结果会发现文档已经成功被更新,这种语句在sql中就类似update student set age=18 where name=bigsai2

3.5 MongoDB的删除操作

删除操作完成从集合中删除文档,MongoDB提供了以下删除集合文档的方法:

db.collection.deleteOne() //3.2版中的新功能 删除一条记录

db.collection.deleteMany() //3.2版中的新功能 删除多条记录

在MongoDB中,删除操作只针对单个集合(db.collection中对应的collection)。MongoDB中的删除操作都是单个文档级别的原子操作,你可以指定标准或过滤器,以标识要删除的文档。这些过滤器与查询、更新使用的过滤器用法一致。 这里delete和update操作的条件有点类似,如果使用deleteOne()语句会删除第一个匹配的文档,而使用deleteMany()会删除所有满足条件的文档。

如果我们删除所有数据字段name为bigsai2的文档可以这么操作:

db.student.deleteMany(
     {"name":"bigsai2"}//条件
 )

可以发现文档被成功删除:

补充:✨ studio3T的安装

一、说明 1、windows: win10企业版。

2、Studio 3T: Studio 3T 2020.1.2

二、Studio 3T 下载与安装

1、下载 进入到Studio 3T 下载地址进行下载。选择合适的版本进行下载。

2、安装 (1)双击安装文件进行安装

(2)点击Next按钮进行下一步

(3)点击Next按钮进行下一步。

(4)设置安装路径,然后点击Next进行下一步。

(5)点击Finish完成安装。

3、创建连接 (1)启动Studio 3T,然后点击 Connect。

(2)点击 New Connection。

(3)设置连接信息

(4)点击Connect创建连接

创建连接成功结果后如下图所示:

引用文档如下: https://ke.boxuegu.com/detail/3202.html https://blog.csdn.net/u010398771/article/details/98958518 https://www.cnblogs.com/1488boss/p/10754290.html http://c.biancheng.net/mongodb2/install-on-macos.html https://blog.csdn.net/cckavin/article/details/104293178

总结

到这里恭喜你入门了MongoDB数据库,MongoDB我也是小白,摸索着学了一遍并总结成文字,希望能帮到你!

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!
本文分享自作者个人站点/博客:https://blog.csdn.net/xianyu120复制
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • 一文快速入门MongoDB数据库

    要在 Windows 系统上安装 MongoDB,首先需要在 MongoDB 的官网(https://www.mongodb.com/try/download/...

    ChinaManor
  • MongoDB【快速入门】

    MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是可以应用于各种规模的企业、各个行业以及各类应用程序的开源数据库。作为一个适用于敏捷开...

    乔戈里
  • MongoDB【快速入门】

    MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是可以应用于各种规模的企业、各个行业以及各类应用程序的开源数据库。作为一个适用于敏捷开...

    我没有三颗心脏
  • MongoDB快速入门

    随着大数据时代的到来,数据急速增长,导致关系型数据库(SQL)越来越不够用。高性能、可扩展的数据库变得越来越重要起来,在这样的场景下,非关系型数据库(NoSQL...

    没有故事的陈师傅
  • MongoDB快速入门

        从我第一次听到Nosql这个概念到如今已经走过4个年头了,但仍然没有具体的去做过相应的实践。最近获得一段学习休息时间,购买了Nosql技术实践一书,正在...

    用户1216676
  • MongoDb 快速入门教程

    MongoDb 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。 它是可扩展的高性能数据存储解决方案,经常被用于...

    陈树义
  • 快速学习-mongodb安装与入门

    MongoDB 提供了可用于 32 位和 64 位系统的预编译二进制包,你可以从MongoDB官网下载安装。

    cwl_java
  • 一文快速入门 ConstraintLayout

    ConstraintLayout 目前是 Android Studio 的默认布局,其优势就是可以使用扁平化的视图层次结构(无嵌套视图组)来创建复杂多变的大型布...

    业志陈
  • Mongodb数据库基础入门(一)

    Mongodb是一个基于分布式文件存储的数据库,由C++语言编写,为WEB应用提供可扩展的高性能数据存储解决方案

    民工哥
  • 一文快速入门LoRa开发

    LoRa是一个比较小众的东西,但是随着近几年的发展逐渐成为低功耗物联网的典型代表,通过本文章快速了解LoRa开发。

    ManInRoad
  • MongoDB快速入门,掌握这些刚刚好!

    MongoDB是一个基于分布式文件存储的数据库。由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系型数据库和非关...

    macrozheng
  • 一文快速入门 Kotlin 协程

    在今年的三月份,我因为需要为项目搭建一个新的网络请求框架开始接触 Kotlin 协程。那时我司项目中同时存在着两种网络请求方式,采用的技术栈各不相同,Java、...

    业志陈
  • 快速搭建属于自己的mongodb数据库

    前言 MongoDB 是一个基于分布式文件存储的数据库。由C++语言编写,支持Windows,Linux,OSX,Solaris等平台,默认端口为27017,是...

    okaychen
  • 一文入门MySQL数据库

    本文中介绍的结构型数据库MySQL的基本知识,能够让你快速入门MySQL,具体内容包含:

    皮大大
  • mongodb官网下载不了, MongoDB下载、安装、配置、使用,如何下载MongoDB数据库,MongoDB入门[通俗易懂]

    MongoDB 将数据存储在灵活的json文档中,这意味着可以直接得到从文档到文档的数据、结构等。

    全栈程序员站长
  • MongoDB数据库 5分钟快速上手

    tanoak
  • Java大数据:MongoDB数据库入门基础

    提起大数据存储,NoSQL数据库一定是不能忽视的重要部分,而在不同场景下,NoSQL数据库也有着不同的选择。比如说MongoDB,就是NoSQL数据库当中的经典...

    成都加米谷大数据
  • MySQL数据库基础快速入门

    在前面的B站视频,已经给大家演示了如何安装MySQL,如果你还没有安装MySQL,你可以参考“极客开发者”B站视频频道的相关教程。再看以下内容

    极客开发者
  • 快速入门 Python 数据库操作

    3.输入数据库服务器 IP,本机就用默认 localhost,端口默认 3306。再输入账号,密码以及所要操作的库名,点击 Test Connection 进行...

    吾非同

扫码关注腾讯云开发者

领取腾讯云代金券