[MongoDB] 认识MongoDB以及在Windows和Linux上安装MongoDB

初次学习,如有错误还请指正

目录

MongoDB简介

体系结构

数据模型

MongoDB的特点

Windows中的安装

Linux系统中的安装启动和连接


MongoDB简介

MongoDB是一个开源、高性能、无模式的文档型 数据库,当初的设计就是用于简化开发和方便扩展,是NoSQL数据库产品中的一种。是最像关系型数据库(MySQL)的非关系型数据库

它支持的数据结构非常松散,是一种类似于 JSON 的 格式叫BSON,所以它既可以存储比较复杂的数据类型,又相当的灵活。

MongoDB中的记录是一个文档,它是一个由字段和值对(field:value)组成的数据结构。MongoDB文档类似于JSON对象,即一个文档认为就是一个对象。字段的数据类型是字符型,它的值除了使用基本的一些类型外,还可以包括其他文档、普通数组和文档数组。

应用场景:

  • 数据量大

  • 写入操作频繁

  • 价值较低的数据,对事务性要求不高

体系结构

MySQL和MongoDB对比:

数据模型

MongoDB的最小存储单位就是文档(document)对象。文档(document)对象对应于关系型数据库的行。数据在MongoDB中以BSON(Binary-JSON)文档的格式存储在磁盘上。

BSON(Binary Serialized Document Format)是一种类json的一种二进制形式的存储格式,简称Binary JSON。BSON和JSON一样,支持内嵌的文档对象和数组对象,但是BSON有JSON没有的一些数据类型,如Date和BinData类型。

BSON采用了类似于 C 语言结构体的名称、对表示方法,支持内嵌的文档对象和数组对象,具有轻量性、可遍历性、高效性的三个特点,可以有效描述非结构化数据和结构化数据。这种格式的优点是灵活性高,但它的缺点是空间利用率不是很理想。

Bson中,除了基本的JSON类型:string,integer,boolean,double,null,array和object,mongo还使用了特殊的数据类型。这些类型包括date,object id,binary data,regular expression 和code。每一个驱动都以特定语言的方式实现了这些类型,查看你的驱动的文档来获取详细信息。

BSON数据类型参考列表:

提示: shell默认使用64位浮点型数值。{"x":3.14}或{"x":3}。对于整型值,可以使用NumberInt(4字节符号整数)或NumberLong(8字节符号整数),{"x":NumberInt("3")}{"x":NumberLong("3")}。不调用的话默认插入的都是浮点型。

MongoDB的特点

MongoDB主要有如下特点:

(1)高性能: MongoDB提供高性能的数据持久性。特别是, 对嵌入式数据模型的支持减少了数据库系统上的I/O活动。 索引支持更快的查询,并且可以包含来自嵌入式文档和数组的键。(文本索引解决搜索的需求、TTL索引解决历史数据自动过期的需求、地 理位置索引可用于构建各种 O2O 应用) mmapv1、wiredtiger、mongorocks(rocksdb)、in-memory 等多引擎支持满足各种场景需求。 Gridfs解决文件存储的需求。 (2)高可用性: MongoDB的复制工具称为副本集(replica set),它可提供自动故障转移和数据冗余。 (3)高扩展性: MongoDB提供了水平可扩展性作为其核心功能的一部分。 分片将数据分布在一组集群的机器上。(海量数据存储,服务能力水平扩展) 从3.4开始,MongoDB支持基于片键创建数据区域。在一个平衡的集群中,MongoDB将一个区域所覆盖的读写只定向到该区域内的那些 片。 (4)丰富的查询支持: MongoDB支持丰富的查询语言,支持读和写操作(CRUD),比如数据聚合、文本搜索和地理空间查询等。 (5)其他特点:如无模式(动态模式)、灵活的文档模型、

Windows中的安装

首先去官网下载对应的Windows版本压缩包,解压压缩包,打开解压的文件,创建data文件夹,打开data文件夹后再新建db文件夹

接着进入bin文件夹,点击地址栏输入cmd,进入cmd

输入下面指令启动:

复制代码
mongod --dbpath=..\data\db

Linux系统中的安装启动和连接

步骤如下: (1)先到官网下载压缩包 mongod-linux-x86_64-4.0.10.tgz 。 (2)上传压缩包到Linux中,解压到当前目录:

bash 复制代码
 tar -zxvf mongodb-linux-x86_64-4.0.10.tgz

(3)移动解压后的文件夹到指定的目录中(重命名):

bash 复制代码
 mv mongodb-linux-x86_64-4.0.10 /usr/local/mongodb

(4)新建几个目录,分别用来存储数据和日志:

bash 复制代码
 #数据存储目录
 mkdir -p /mongodb/single/data/db
 #日志存储目录
 mkdir -p /mongodb/single/log

(5)新建并修改配置文件

bash 复制代码
vi /mongodb/single/mongod.conf

配置文件的内容如下:

一定要注意格式!

bash 复制代码
 systemLog:
   #MongoDB发送所有日志输出的目标指定为文件
   #The path of the log file to which mongod or mongos should send all diagnostic logging information
   destination: file
   #mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径
   path: "/mongodb/single/log/mongod.log"
   #当mongos或mongod实例重新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾。
   logAppend: true
 storage:
   #mongod实例存储其数据的目录。storage.dbPath设置仅适用于mongod。
   ##The directory where the mongod instance stores its data.Default Value is "/data/db".
   dbPath: "/mongodb/single/data/db"
   journal:
     #启用或禁用持久性日志以确保数据文件保持有效和可恢复。
     enabled: true
 processManagement:
   #启用在后台运行mongos或mongod进程的守护进程模式。
   fork: true
 net:
   #服务实例绑定的IP,确保bindIp不是设置为127.0.0.1(这只会允许本地连接),除非你仅从本地连接。如果你需要从远程机器连接,可以设置为0.0.0.0或具体的IP地址。
   bindIp: 0.0.0.0
   #bindIp
   #绑定的端口,默认是27017
   port: 27017

(6)启动MongoDB服务

bash 复制代码
/usr/local/software/mongodb/bin/mongod -f /mongodb/single/mongodb.conf

注意: 如果启动后不是 successfully ,则是启动失败了。原因基本上就是配置文件有问题。

通过进程来查看服务是否启动了:

bash 复制代码
[root@bobohost single]# ps -ef |grep mongod
root 90384 1 0 8月26 ? 00:02:13 /usr/local/mongdb/bin/mongod -f /mongodb/single/mongodb.conf

(7)分别使用mongo命令和compass工具来连接测试。 提示:如果远程连接不上,需要配置防火墙放行,或直接关闭linux防火墙

bash 复制代码
 #查看防火墙状态
 systemctl status firewalld
 #临时关闭防火墙
 systemctl stop firewalld
 #开机禁止启动防火墙
 systemctl disable firewalld

(8)停止关闭服务 停止服务的方式有两种:快速关闭和标准关闭,下面依次说明: (一)快速关闭方法(快速,简单,数据可能会出错) 目标:通过系统的kill命令直接杀死进程: 杀完要检查一下,避免有的没有杀掉。

bash 复制代码
 #通过进程编号关闭节点
 kill -2 54410

(9)直接在Windows中使用cmd连接

在cmd中输入下面命令即可:

bash 复制代码
mongo --host=192.168.112.129 --port=27017

【补充】 如果一旦是因为数据损坏,则需要进行如下操作(了解):

1)删除lock文件:

bash 复制代码
 rm -f /mongodb/single/data/db/*.lock

2)修复数据:

bash 复制代码
 /usr/local/mongdb/bin/mongod --repair --dbpath=/mongodb/single/data/db

(二)标准的关闭方法(数据不容易出错,但麻烦): 目标:通过mongo客户端中的shutdownServer命令来关闭服务 主要的操作步骤参考如下:

bash 复制代码
 //客户端登录服务,注意,这里通过localhost登录,如果需要远程登录,必须先登录认证才行。
 mongo --port 27017
 //#切换到admin库
 use admin
 //关闭服务
 db.shutdownServer()

注意:使用mongo命令需要配置环境变量

bash 复制代码
 vim /etc/profile

 # 需要添加
 MONGO_HOME=/usr/local/soft/mongodb
 PATH=$PATH:$MONGO_HOME/bin

 # 环境变量生效,还需要执行如下指令:
 source /etc/profile

THE END

如有遗漏,欢迎补充,感谢!

相关推荐
朝发如雪4 小时前
快速掌握Linux(2)(时间相关函数)(文件IO)
linux·python·算法
郭涤生4 小时前
VScode回归ACM模式(古法编程)配置
linux·ide·vscode
盐焗鹌鹑蛋4 小时前
【Linux】ELF与库加载
java·linux·服务器
李少兄4 小时前
Windows 系统 Hosts 文件完全指南
windows
梦诺5 小时前
LINUX定时执行脚本
linux·运维·服务器
录大大i5 小时前
Windows前端开发环境搭建终极实战文档(Nvm+Node+Pnpm+Nrm)
windows
Dovis(誓平步青云)5 小时前
心情日记的安全编辑流程:输入校验、删除确认与状态回收
android·运维·服务器·开发语言·windows·安全
wazmlp0018873695 小时前
控制器管理
linux·运维·服务器
学linux的QQ蛋5 小时前
Linux 文件 IO:系统调用 open/read/write 完整总结
linux·运维·算法
sg_knight5 小时前
openCode 安装与初始化配置(Windows / macOS / Linux)
linux·windows·macos·llm·agent·ai编程·opencode