MongoDB(一)【概念介绍安装】

news2024/11/20 7:12:31

MongoDB 概念以及安装

官方文档:https://www.mongodb.com/docs/manual/

简介

  • 官方介绍

MongoDB是一个文档数据库,旨在方便应用开发和扩展

在这里插入图片描述

  • 百度百科

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

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

  • 历史

2009年2月,MongoDB数据库首次在数据领域亮相,打破了关系型数据库一统天下的局面

2010年8月,MongoDB 1.6 发布。这个版本最大的一个功能就是Sharding,自动分片

2014年12月,MongoDB 3.0 发布。由于收购了 WiredTiger 存储引擎,大幅度提升了 MongoDB 的写入性能

2015年12月,3.2版本发布,开始支持关系型数据库的核心功能:关联。可以一次同时查询多个 MongoDB 的集合

2016年,MongoDB 推出 Atlas,在 AWS、Azure 和 GCP 上的 MongoDB 托管服务

2017年10月,MongoDB 成功在纳斯达克敲钟,成为第一个支持强事务的 NoSQL 数据库

2018年6月,MongoDB 4.0 发布退出ACID事务支持,成为第一个支持强事务的NoSQL数据库

2018年—至今,MongoDB 已经从一个在数据库领域籍籍无名的"小透明",变成了话题都和热题度都很高的"流量"数据库

特点

  • 面向集合存储,易存储对象类型的数据
  • 支持查询以及动态查询
  • 支持RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言
  • 文件存储格式为BSON(一种JSON的扩展)
  • 支持复制和故障恢复和分片
  • 支持事务、索引、聚合、关联…

应用场景

  • 游戏应用:使用云数据库 MongoDB 作为游戏服务器的数据库,来存储用户信息。用户的游戏装备、积分等直接以内嵌文档的形式存储,方便进行查询与更新
  • 物流应用:使用云数据库 MongoDB 存储订单信息,订单状态在运送过程中会不断更新,以云数据库 MongoDB 内嵌数组的形式来存储,一次查询就能将订单所有的变更读取出来,方便快捷且一目了然
  • 社交应用:使用云数据库 MongoDB 存储用户信息以及用户发表的朋友圈信息,通过地理位置索引实现附近的人、地点等功能。并且,云数据库 MongoDB 非常适合用来存储聊天记录,因为它提供了非常丰富的查询,并在写入和读取方面都相对较快
  • 视频直播:使用云数据库 MongoDB 存储用户信息、礼物信息等
  • 大数据应用:使用云数据库 MongDB 作为大数据的云存储系统,随时进行数据提取分析,掌握行业动态

一、MongoDB 安装


工作准备

  • Linux系统与基础(个人使用CentOS 7.x镜像)
  • Xftp 文件上传软件

传统方式安装

开源地址:https://www.mongodb.com/try/download/community

在这里插入图片描述

在这里插入图片描述

  • 下载自己需要的版本(这里我选择上面这幅图所选的信息),并使用 Xftp 上传到 Linux 中,并使用如下命令进行解压
[root@vinjcent mongodb]# ls
mongodb-linux-x86_64-rhel70-5.0.14.tgz
# 解压压缩包
tar -zxf mongodb-linux-x86_64-rhel70-5.0.14.tgz
[root@vinjcent mongodb]# ls
mongodb-linux-x86_64-rhel70-5.0.14  mongodb-linux-x86_64-rhel70-5.0.14.tgz
[root@vinjcent mongodb]# mv mongodb-linux-x86_64-rhel70-5.0.14 mongodb
[root@vinjcent mongodb]# ls
mongodb  mongodb-linux-x86_64-rhel70-5.0.14.tgz

在这里插入图片描述

  • 查看安装目录
ls
`bin` # 目录,用来存放启动mongoDB的服务以及客户端连接的脚本文件

在这里插入图片描述

  • 启动 MongDB 服务
# 启动前,先创建data、logs目录(均在/bin目录下执行)
mkdir ../data
mkdir ../logs
# 启动mongodb
./mongod --port=27017 --dbpath=../data --logpath=../logs/mongo.log
`--port`	# 指定服务监听端口号,默认为 27017
`--dbpath`	# 指定 mongodb 数据存放目录,启动要求目录必须存在
`--logpath`	# 指定 mongodb 日志文件存放位置

在这里插入图片描述

在这里插入图片描述

# 开启另外一个窗口,查看mongo服务
ps -aux|grep mongo

在这里插入图片描述

注意:由于指定日志文件,因此启动时,日志输出到日志目录下,终端不显示任何日志,以上的连接并不是报错,而是每次连接都生成一个对应的日志文件

  • 客户端连接
# 在/mongo/bin目录下运行
./mongo --port=27017
# 进入后,查询数据库内存命令
show dbs;

在这里插入图片描述

使用 Docker 安装

环境准备

  • 需要在自己的系统配置Docker容器

去 DockerHub 中查找 MongoDB 版本

DockerHub官网:https://hub.docker.com/

MongoDB镜像版本:https://hub.docker.com/_/mongo/tags

# 这里我们拉取5.0.14版本
docker pull mongo:5.0.14

# 基础运行mongodb容器
docker run --name mongo -d -p 27017:27017 mongo:5.0.14
--name	# 命名
-d		# 后台运行
-p		# 指定端口(加":"作为宿主机映射端口)

# 进入容器内部,运行mongodb客户端
# 1. 先进入容器内部
docker exec -it [容器id] bash
# 2. 运行mongodb客户端
mongo

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/80622.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【web前端期末大作业】html在线网上书店 基于html制作我的书屋(23页面)

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

反序列化漏洞原理

序列化及其出现场景 ●远程和进程间通信(RPC/IPC) ●连线协议、Web服务、消息代理 ●缓存/持久性存储区 ●数据库、缓存服务器、文件系统 ●HTTP cookie、HTML参数、API身份验证令牌 序列化 (serialize)是将对象的状态信息转换为可以存储或传输的形…

基于java+springmvc+mybatis+jsp+mysql的电动车实名制挂牌管理系统

项目介绍 电动车实名制挂牌管理系统的需求和管理上的不断提升,电动车实名制挂牌管理的潜力将无限扩大,电动车实名制挂牌管理系统在业界被广泛关注,本网站及对此进行总体分析,将电动车实名制挂牌信息管理的发展提供参考。电动车实…

微信接入ChatGPT,使用Node+ChatGPT+Wechaty做一个微信机器人

目录 前言 准备工作 起步 实践 写在最后 前言 接上篇文章:站在巨人的肩膀上,用NodeChatGPT模块实现一个接口_DieHunter1024的博客-CSDN博客 我将ChatGPT模块的使用介绍了一下,使用自己的session发送请求达到调用ChatGPT进行聊天的目的&…

动态规划——背包问题(2)

文章目录多重背包的单调队列优化例题思路代码二维费用背包问题例题背包问题装法的总结:至多、恰好、至少背包最多装V体积背包恰好装V体积背包最少装V体积例题求解方案数初始化和循环顺序例题求解具体方案思路例题考察思维的一些题目多重背包与分组背包机器分配金明的…

原生JS开发手机端H5项目总结(FamilyChallenge)

一、 插件文件 (可多选) JQuery (操作dom)lottie.js (播放动效)preload-0.6.2.min.js(资源预加载)jweixin-1.6.0.js (h5跳转微信小程序)TweenMax.min.js &am…

Lidar based off-road negative obstacle detection and analysis(论文翻译)

(机翻 自己留作资料的 大家辩证使用 论文地址:https://ieeexplore.ieee.org/document/6083105) Abstract: 无人驾驶地面车辆 (UGV) 要想在越野地形中高速行驶,就必须实时分析和了解周围的地形:它必须知道它打算去哪里&…

备忘录模式

一、备忘录模式 1、定义 备忘录模式(Memento Pattern)又称作快照模式(Snapshot Pattern),指在不破坏封装的前提下,捕获一个对象的内部状态,并在对象之外保存这个状态。这样以后就可将该对象恢复…

你好,Cartesi Rollups Alpha 0.8.0

支持 Arbitrum 和 Optimism 部署,并使内部增强。我们通过这个新版本支持在Optimism和Arbitrum L2 链上的部署,为 Cartesi Rollups DApp 开发人员带来了更低的延迟和更低的gas费用。我们致力于提高 Cartesi 技术的多样性和性能提升,并且通过 R…

【MySQL】视图

文章目录视图基本使用视图规则与限制视图 视图是一个虚拟表,其内容由查询定义,同真实的表一样,视图包含一系列带有名称的列和行数据,视图的数据变化会影响到基表,基表的数据变化也会影响到视图, 主要作用是,将表的内容,常用需要的部分创建一个部分,这样使用视图的时候,可以减…

CAS:1407166-70-4,NODA-GA-NHS ester大环化合物供应

基本信息 名称: NODA-GA-NHS ester 2,2′-(7-(1-carboxy-4-((2,5-dioxopyrrolidin-1-yl)oxy)-4-oxobutyl)-1,4,7-triazonane-1,4-diyl)diacetic acid CAS编号:1407166-70-4 分子式:C19H28N4O10,HPF6,TFA 分子量&a…

HTTP MIME类型

文章目录HTTP MIME类型HTTP MIME类型 HTTP 请求头中的 Accept 头是客户端用来告诉服务器,客户端可以处理什么类型的内容,这种内容类型使用 MIME 类型来表示。借助内容协商机制,服务器可以从诸多 MIME 中选择一项进行应用,并使用 …

Java精品项目源码第145期食品检测管理系统

Java精品项目源码第145期食品检测管理系统 大家好,小辰哥又来啦,今天给大家介绍一个错的基于SSM的食品检测管理系统。 文章目录Java精品项目源码第145期食品检测管理系统前言一、项目运行1.运行环境2.截图前言 提示:以下是本篇文章正文内容…

大数据-玩转数据-Linux部署redis集群

一、下载安装包 访问https://redis.io/download 到官网进行下载。这里下载最新版本. 或直接下载 wget http://download.redis.io/releases/redis-6.2.7.tar.gz 二、安装环境 redis是C语言开发,安装redis需要先将官网下载的源码进行编译,编译依赖gcc环…

数据结构——线性表

线性表的基本操作 对于不同的应用,线性表的基本操作是不同的,上诉操作是最基本的,对于实际问题中涉及的关于线性表的更复杂操作,完全可以用这些基本操作的组合来实现。如要使得A A U B,就是要将存在于集合B中但不存在于集合A中的…

Java项目:SSM实现茶叶电商销售商城

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 该项目为前后台项目,分为普通用户与管理员两种角色,前台普通用户登录,后台管理员登录; 管理员角…

软件设计与体系结构——结构型模式

如果有兴趣了解更多相关内容,欢迎来我的个人网站看看:瞳孔空间 结构型模式(Structural Pattern)描述如何将类或对象按某种布局组成更大的结构。就像搭积木,可以通过简单积木的组合形成复杂的、功能更为强大的结构 结构型模式可以分为类结构型…

(附源码)ssm教学督导管理系统 毕业设计 292346

ssm教学督导管理系统 摘 要 随着社会的发展,社会的方方面面都在利用信息化时代的优势。互联网的优势和普及使得各种系统的开发成为必需。 本文以实际运用为开发背景,运用软件工程原理和开发方法,它主要是采SSM技术和mysql数据库来完成对系统的…

Springboot传参详解

作者简介 作者名:编程界明世隐 简介:CSDN博客专家,从事软件开发多年,精通Java、JavaScript,博主也是从零开始一步步把学习成长、深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢迎您关注&…

有关SGI STL的alloc

在STL的使用者层面上,空间配置器一般是隐藏的,使用者不需要知道其具体实现细节即 可进行使用;但是从STL的实现角度来说,由于整个STL的操作对象都存放在容器之内,而容器 需要配置一定的空间来进行存放数据,因…