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

发布于:2025-06-05 ⋅ 阅读:(24) ⋅ 点赞:(0)

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

目录

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中,解压到当前目录:

 tar -zxvf mongodb-linux-x86_64-4.0.10.tgz

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

 mv mongodb-linux-x86_64-4.0.10 /usr/local/mongodb

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

 #数据存储目录
 mkdir -p /mongodb/single/data/db
 #日志存储目录
 mkdir -p /mongodb/single/log

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

vi /mongodb/single/mongod.conf

配置文件的内容如下:

一定要注意格式!

 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服务

/usr/local/software/mongodb/bin/mongod -f /mongodb/single/mongodb.conf

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

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

[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防火墙

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

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

 #通过进程编号关闭节点
 kill -2 54410

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

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

mongo --host=192.168.112.129 --port=27017

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

1)删除lock文件:

 rm -f /mongodb/single/data/db/*.lock

2)修复数据:

 /usr/local/mongdb/bin/mongod --repair --dbpath=/mongodb/single/data/db

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

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

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

 vim /etc/profile

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

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

THE END

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


网站公告

今日签到

点亮在社区的每一天
去签到