MongoDB安装

提示:以下是本篇文章正文内容,下面案例可供参考

一、MongoDB简介

1. MongoDB是什么?

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

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 json 的 bson 格式,因此可以存储比较复杂的数据类型。Mongo 最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。如下图:

2. 什么是NoSQL?

NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。

NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。

3. 为什么使用NoSQL ?

今天我们可以通过第三方平台(如:Google,Facebook等)可以很容易的访问和抓取数据。用户的个人信息,社交网络,地理位置,用户生成的数据和用户操作日志已经成倍的增加。我们如果要对这些用户数据进行挖掘,那SQL数据库已经不适合这些应用了, NoSQL 数据库的发展却能很好的处理这些大的数据。

4. RDBMS vs NoSQL

RDBMSNoSQL
- 高度组织化结构化数据
- 结构化查询语言(SQL) (SQL)
- 数据和关系都存储在单独的表中。
- 数据操纵语言,数据定义语言
- 严格的一致性
- 基础事务
- 代表着不仅仅是SQL
- 没有声明性查询语言
- 没有预定义的模式
-键 - 值对存储,列存储,文档存储,图形数据库
- 最终一致性,而非ACID属性
- 非结构化和不可预知的数据
- CAP定理
- 高性能,高可用性和可伸缩性

5. CAP定理(CAP theorem)

在计算机科学中, CAP定理(CAP theorem), 又被称作 布鲁尔定理(Brewer's theorem), 它指出对于一个分布式计算系统来说,不可能同时满足以下三点:

  • 一致性(Consistency) (所有节点在同一时间具有相同的数据)
  • 可用性(Availability) (保证每个请求不管成功或者失败都有响应)
  • 分区容错性(Partition tolerance) (系统中任意信息的丢失或失败不会影响系统的继续运作)

CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,最多只能同时较好的满足两个。

因此,根据 CAP 原理将 NoSQL 数据库分成了满足 CA 原则、满足 CP 原则和满足 AP 原则三 大类:

  • CA - 单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。
  • CP - 满足一致性,分区容忍性的系统,通常性能不是特别高。
  • AP - 满足可用性,分区容忍性的系统,通常可能对一致性要求低一些。

6. NoSQL的优点/缺点

优点缺点
  • - 高可扩展性
  • - 分布式计算
  • - 低成本
  • - 架构的灵活性,半结构化数据
  • - 没有复杂的关系
  • - 没有标准化
  • - 有限的查询功能(到目前为止)
  • - 最终一致是不直观的程序

7. NoSQL 数据库分类

类型部分代表特点
列存储

Hbase

Cassandra

Hypertable

顾名思义,是按列存储数据的。最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,对针对某一列或者某几列的查询有非常大的IO优势。

文档存储

MongoDB

CouchDB

文档存储一般用类似json的格式存储,存储的内容是文档型的。这样也就有机会对某些字段建立索引,实现关系数据库的某些功能。

key-value存储

Tokyo Cabinet / Tyrant

Berkeley DB

MemcacheDB

Redis

可以通过key快速查询到其value。一般来说,存储不管value的格式,照单全收。(Redis包含了其他功能)

图存储

Neo4J

FlockDB

图形关系的最佳存储。使用传统关系数据库来解决的话性能低下,而且设计使用不方便。

对象存储

db4o

Versant

通过类似面向对象语言的语法操作数据库,通过对象的方式存取数据。

xml数据库

Berkeley DB XML

BaseX

高效的存储XML数据,并支持XML的内部查询语法,比如XQuery,Xpath。

8. MongoDB应用场景

  • 网站实时数据:MongoDB 非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及 高度伸缩性。

  •  数据缓存:由于性能很高,MongoDB 也适合作为信息基础设施的缓存层。在系统重启之后,由 MongoDB 搭建的持久化缓存层可以避免下层的数据源过载。

  • 大尺寸、低价值数据存储:使用传统的关系型数据库存储一些数据时可能会比较昂贵,在此之前,很 多时候程序员往往会选择传统的文件进行存储。

  • 高伸缩性场景:MongoDB 非常适合由数十或数百台服务器组成的数据库。MongoDB 的路线图中已经包 含对 MapReduce 引擎的内置支持。

  • 对象或 JSON 数据存储:MongoDB 的 BSON 数据格式非常适合文档化格式的存储及查询。

  • 游戏场景:使用云数据库MongoDB作为游戏服务器的数据库存储用户信息。用户的游戏装备、积分等直接以内嵌文档的形式存储,方便进行查询与更新。

  • 物流场景:使用云数据库MongoDB存储订单信息,订单状态在运送过程中会不断更新,以云数据库MongoDB内嵌数组的形式来存储,一次查询就能将订单所有的变更读取出来,方便快捷且一目了然。

  • 社交场景:使用云数据库MongoDB存储用户信息以及用户发表的朋友圈信息,通过地理位置索引实现附近的人、地点等功能。并且,云数据库MongoDB非常适合用来存储聊天记录,因为它提供了非常丰富的查询,并在写入和读取方面都相对较快。

  • 物联网场景:使用 MongoDB存储所有接入的智能设备信息,以及设备汇报的日志信息,并对这些信息进行多维度的分析

  • 视频直播:使用云数据库MongoDB存储用户信息、礼物信息等。

  • 大数据应用:使用云数据库MongoDB作为大数据的云存储系统,随时进行数据提取分析,掌握行业动态。

9. MongoDB不适用场景

  • 高度事务性系统:例如银行或会计这些金融系统。传统的关系型数据库目前还是更适用于需要大量原子性复杂事务的应用程序。

  • 传统的商业智能应用:针对特定问题的 BI 数据库会对产生高度优化的查询方式。对于此类应用,关系型可能是更合适的选择。

所以,对于需要复杂 SQL 查询的问题。MongoDB是不太适合的,在技术选项上需要根据业务场景和公司实际情况选择合适的数据库,关系型数据库和NoSQL数据库各有优缺点,应该根据实际场景合理选择数据库。

二、安装步骤(Windows)

1. 系统环境

Windows 10
mongodb-windows-x86_64-6.0.5-signed.msi

2. 相关约定

存放数据:D:\DataBase\MongoDB\6.0\data

存放日志:D:\DataBase\MongoDB\6.0\log

3.下载安装

服务端:

版本选择:mongodb-windows-x86_64-6.0.5-signed.msi

Mongodb的安装包:官方社区版下载地址

客户端工具:

官方客户端下载地址

管理工具:

提供数据导入、导出、系统监控等数据库运维管理工具。

官方下载地址

4. 配置相关

1.环境变量配置
配置MongoDB全局环境变量(就是在电脑中任何地方都可以合用mongo、mongod等命令)

注:配置完成后,重启电脑, 环境变量才生效哦!重启后,我们就能在系统的任何位置,使用mongo命令了:mongod -version

如:查看MongoDB数据库存的版本:

2.mongod.cfg 配置

MongoDB数据库的相关配置信息,是存储在mongodb安装目录bin目录中的mongod.cfg文件中,

5. 启动服务

进入:D:\Program Files\MongoDB\Server\6.0\bin 目录下 进入CMD界面
方式一: 临时启动【关闭后会关闭服务】
mongod --dbpath D:\DataBase\MongoDB\6.0\data

方式二:配置成Windows服务启动 【服务持久化运行】:
1、需要配置mongod.cfg  数据存储和日志存储地址;
2、安装为Windows服务cmd执行命令: mongod.exe --config D:\Program Files\MongoDB\Server\6.0\bin\mongod.cfg  --install  --serviceName "MongoDB"

启动服务:net start MongoDB
关闭服务:net stop MongoDB
移除服务:mongod.exe --remove

验证是否启动成功:
http://localhost:27017/
打印: It looks like you are trying to access MongoDB over HTTP on the native driver port.  

说明服务启动成功了 如下图:

6. 可视化操作

1.工具
Studio 3T
DataGrip 2023.2.1

2.科学使用

Studio 3T 没权限打不开需要科学使用:

创建批处理文件studio3t.bat  执行重置试用日期 又可以友好的玩耍了

@echo off
ECHO 重置Studio 3T的使用日期......
FOR /f "tokens=1,2,* " %%i IN ('reg query "HKEY_CURRENT_USER\Software\JavaSoft\Prefs\3t\mongochef\enterprise" ^| find /V "installation" ^| find /V "HKEY"') DO ECHO yes | reg add "HKEY_CURRENT_USER\Software\JavaSoft\Prefs\3t\mongochef\enterprise" /v %%i /t REG_SZ /d ""
ECHO 重置完成, 按任意键退出......
pause>nul
exit

3.链接服务 

Studio 3T测试使用

DataGrip 测试使用

链接测试

7. 基本使用

基本命令
命令描述                         命令示例
显示数据库列表               show dbs
切换到指定数据库            use database
创建数据库                       use database; db.createCollection("collection")
删除数据库                       db.dropDatabase()
显示当前数据库               db
显示当前数据库的集合     show collections
创建集合                           db.createCollection("collection")
创建固定集合                    db.createCollection("collection", {capped: true, size: 1024 * 1024})
删除集合                            db.collection.drop()
备份数据库                        mongodump --db database --out /path/to/backup
恢复数据库                        mongorestore --db database /path/to/backup/database
显示数据库状态                db.stats()
显示集合状态                    db.collection.stats()

使用案例1-显示数据库列表 

使用案例2
创建库,创建集合,添加文档,查询文档,

//数据库
show dbs  // 查看所有数据库
db  //显示当前数据库
db.stats() //显示数据库状态
//集合
db.collection.stats()  //显示集合状态
show collections  //显示当前数据库的集合
show tables  //显示当前数据库的集合

//操作
use test //创建数据库
db.createCollection('test')  //创建集合
db.test.find() //查询
db.test.find({"autor": '小一'}) //根据autor查询记录

/** 案例一  **/
db.test.insertOne({"title":"1",
"content":"6核",
"autor":"小一",
"tags":["数据库","NoSQL","MongoDB"],
"date":ISODate("2023-01-09"),
"prc":{
"键盘类型":"2机械",
"颜色":"Black",
"牌子":"双飞燕"}})

/** 案例二 与案例一中 字段不同 多了个categories 字段  这就凸显出了NoSql扩展字段的灵活性**/
db.test.insertOne({"title":"2",
"content":"案例二",
"autor":"小二",
"categories":["编程","数据库"],
"tags":["数据库","NoSQL","MongoDB"],
"date":ISODate("2023-01-09"),
"prc":{
"键盘类型":"2机械",
"颜色":"Black",
"牌子":"双飞燕"}})

其它操作命令自己尝试吧

二、安装步骤(Linux)

1.引入库

后续添加。。。。


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
安装 MongoDB,你可以按照以下步骤进行操作: 1. 前往 MongoDB 官方网站(https://www.mongodb.com/try/download/community)下载适合你操作系统的 MongoDB 安装程序。 2. 根据你的操作系统,选择合适的安装程序。如果你使用的是 Windows,选择 MSI 安装程序;如果你使用的是 macOS,选择 TGZ 压缩文件;如果你使用的是 Linux,选择对应的发行版安装包。 3. 下载完成后,运行安装程序,并按照提示进行安装。在 Windows 上,只需双击 MSI 安装程序并按照向导进行安装;在 macOS 上,解压 TGZ 压缩文件并将解压后的文件夹移动到合适的位置;在 Linux 上,使用适当的包管理器进行安装。 4. 安装完成后,你可以选择将 MongoDB 的可执行文件路径添加到系统环境变量中,这样你就可以在任何位置使用 `mongod` 和 `mongo` 命令了。 5. 启动 MongoDB 服务。在 Windows 上,可以通过服务管理器启动 MongoDB 服务;在 macOS 和 Linux 上,打开终端并运行 `mongod` 命令启动 MongoDB 服务。 6. 运行 `mongo` 命令,连接到 MongoDB 数据库服务器。默认情况下,MongoDB 使用本地主机上的端口 27017 进行连接。 完成以上步骤后,你就成功安装MongoDB。你可以使用 `mongo` 命令行工具或者 MongoDB 的官方驱动程序来进行数据库操作。如果你需要更多详细的信息,可以参考 MongoDB 官方文档(https://docs.mongodb.com)。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值