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

article/2025/8/14 8:08:31

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

目录

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 informationdestination: file#mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径path: "/mongodb/single/log/mongod.log"#当mongos或mongod实例重新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾。logAppend: truestorage:#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: trueprocessManagement:#启用在后台运行mongos或mongod进程的守护进程模式。fork: truenet:#服务实例绑定的IP,确保bindIp不是设置为127.0.0.1(这只会允许本地连接),除非你仅从本地连接。如果你需要从远程机器连接,可以设置为0.0.0.0或具体的IP地址。bindIp: 0.0.0.0#bindIp#绑定的端口,默认是27017port: 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/mongodbPATH=$PATH:$MONGO_HOME/bin# 环境变量生效,还需要执行如下指令:source /etc/profile

THE END

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


http://www.hkcw.cn/article/cWouTKwJJZ.shtml

相关文章

iOS —— UI 初探

简介 第一次新建时,你可能会好奇。为什么有这么多文件,他们都有什么用? App 启动与生命周期管理相关 文件名 类型 作用 main.m m 程序入口,main() 函数定义在这里 AppDelegate.h/.m h/m App 启动/进入后台/退出等全局事…

【设计模式-3.4】结构型——代理模式

说明:说明:本文介绍结构型设计模式之一的代理模式 定义 代理模式(Proxy Pattern)指为其他对象提供一种代理,以控制对这个对象的访问,属于结构型设计模式。(引自《设计模式就该这样学》P158&am…

C++: STL简介与string类核心技术解析及其模拟实现

目录: 一.STL二.string类一、创建对象的6种构造方式二、常用接口解析1. 容量操作2. 元素访问3. 修改操作4. 字符串操作 三.string模拟实现一、设计基础:类结构与资源管理二、拷贝控制:深拷贝的三种实现1. 传统深拷贝2. 现代写法(推荐&#xf…

【复杂网络分析】什么是modularity?

在复杂网络研究中,modularity(模块化程度或模块度) 是衡量网络社区结构(即节点分组为紧密连接的社区,而社区间连接稀疏)的重要指标。它由Mark Newman和Michelle Girvan于2004年提出,广泛用于评估…

模型训练相关的问题

与模型训练相关问题 损失函数Cross entropy loss的含义训练数据有脏数据,怎么处理?loss一直不收敛,怎么排查?连续值的特征怎么处理后输入到机器学习模型当中损失函数Cross entropy loss的含义 在深度学习中,可以看作通过概率分布q ( x )(预测概率)表示概率分布p ( x ) …

【项目记录】登录认证(下)

1 过滤器 Filter 刚才通过浏览器的开发者工具,可以看到在后续的请求当中,都会在请求头中携带JWT令牌到服务端,而服务端需要统一拦截所有的请求,从而判断是否携带的有合法的JWT令牌。 那怎么样来统一拦截到所有的请求校验令牌的有…

Portainer安装指南:多节点监控的docker管理面板-家庭云计算专家

背景 Portainer 是一个轻量级且功能强大的容器管理面板,专为 Docker 和 Kubernetes 环境设计。它通过直观的 Web 界面简化了容器的部署、管理和监控,即使是非技术用户也能轻松上手。Portainer 支持多节点管理,允许用户从一个中央控制台管理多…

基于微信小程序的垃圾分类系统

博主介绍:java高级开发,从事互联网行业六年,熟悉各种主流语言,精通java、python、php、爬虫、web开发,已经做了六年的毕业设计程序开发,开发过上千套毕业设计程序,没有什么华丽的语言&#xff0…

【前端面经】百度一面

写在前面&#xff1a;面经只是记录博主遇到的题目。每题的答案在编写文档的时候已经有问过deepseek&#xff0c;它只是一种比较普世的答案&#xff0c;要学得深入还是靠自己 Q&#xff1a; <html><style>.a {background-color: red;width: 200px;height: 100px;}…

智能体觉醒:AI开始自己“动手”了-自主进化开启任务革命时代

1. 智能体&#xff1a;AI从“工具”到“伙伴”的关键跃迁 1.1 什么是智能体&#xff1f; 智能体&#xff08;Agent&#xff09;是AI的“进化版”——它不再局限于生成文字或图像&#xff0c;而是能像人类一样“规划任务”“调用工具”甚至“协同合作”。例如&#xff0c;一个…

STM32软件spi和硬件spi

核心观点 本文主要介绍了SPI通信的两种实现方式&#xff1a;软件SPI和硬件SPI。详细阐述了SPI通信协议的基本概念、硬件电路连接方式、移位示意图、时序基本单元以及四种工作模式。同时&#xff0c;对W25Q64模块进行了详细介绍&#xff0c;包括其硬件电路、框图以及操作注意事…

MongoDB数据库命令

目录 一、数据库操作 二、集合&#xff08;表&#xff09;操作 三、文档&#xff08;记录&#xff09;CRUD 操作 1、插入文档 2、查询文档 3、更新文档 4、删除文档 四、聚合操作 1、单目的聚合操作 2、聚合管道 3、MapReduce编程 五、索引管理操作 六、用户权限管…

当前最新IDEA社区版安装当前最新的tomcat插件:集成SmartTomcat,提升开发效率

当前最新IDEA社区版安装当前最新的tomcat插件&#xff1a;集成SmartTomcat&#xff0c;提升开发效率 【下载地址】当前最新IDEA社区版安装当前最新的tomcat插件 该项目为开发者提供了详细的指南&#xff0c;帮助在IntelliJ IDEA社区版中安装SmartTomcat插件&#xff0c;以便更高…

Docker 实战——部署 Nginx 镜像容器、Tomcat 镜像容器、MySQL 镜像容器

#设置基础镜像 FROM dadoha/centos7.4.1708 #维护该镜像的用户信息 MAINTAINER zhangsan #安装相关依赖包 RUN yum clean all ; yum -y install proc-devel net-tools gcc zlib zlib-devel make openssl-devel wget #下载并解压nginx软件包 RUN wget http://nginx.org/d…

Nginx和Tomcat实现负载均衡群集部署应用

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f427;Linux基础知识(初学)&#xff1a;点击&#xff01; &#x1f427;Linux高级管理专栏&#xff1a;点击&#xff01; &#x1f510;Linux中firewalld防火墙&#xff1a;点击&#xff01; ⏰️创作时间&…

Linux中使用Docker容器构建Tomcat容器完整教程

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f427;Linux基础知识(初学)&#xff1a;点击&#xff01; &#x1f427;Linux高级管理防护和群集专栏&#xff1a;点击&#xff01; &#x1f510;Linux中firewalld防火墙&#xff1a;点击&#xff01; ⏰️创作…

一文读懂Nginx应用之 Keepalived+Nginx+Tomcat实现高可用负载均衡集群

目录 一、概述 二、环境规划 三、Nginx服务、Tomcat服务安装部署 (一)、Nginx服务安装部署 (二)、Tomcat服务安装部署 1、Tomcat01应用服务器部署应用程序 (1)、tomcat_8081服务 (2)、tomcat_8082服务 2、Tomcat02应用服务器部署应用程序 (1)、tomcat_8081服务 (2)、…

从0到1部署Tomcat和添加servlet(IDEA2024最新版详细教程)

本文不仅细化了每一个步骤&#xff0c;实现了从0到1部署Tomcat和添加servlet。还针对IDEA2024版和以前的版本在部署上的区别&#xff0c;做了详细介绍&#xff0c;尤其是add framework support部分。与此同时&#xff0c;针对控制台中文乱码问题&#xff0c;本文也给出了详细解…

Apache Tomcat RCE 稳定复现 保姆级!(CVE-2024-50379)附视频+POC

原文链接 Apache Tomcat 最新RCE 稳定复现分析 保姆级&#xff01;&#xff01;&#xff01;附复现视频POC 前言 最近爆出 Apache Tomcat条件竞争导致的RCE&#xff0c;影响范围当然是巨大的&#xff0c;公司也及时收到了相关情报&#xff0c;于是老大让我复现&#xff0c;以…

Tomcat 的使用(图文教学)

Tomcat 的使用&#xff08;图文教学&#xff09; 前言一、什么是Tomcat&#xff1f;二、Tomcat 服务器和 Servlet 版本的对应关系三、Tomcat 的使用 1、安装2、目录介绍3、如何启动4、Tomcat 的停止5、如何修改 Tomcat 的端口号6、如何部暑 web 工程到 Tomcat 中 6.1 方式一6.…