【1】MongoDB的安装以及连接

news2024/9/23 3:32:26

今天是2023年10月11日,MongoDB最新版本是7.0.2

最近闲着没事学习一下MongoDB这个NoSQL数据库,有时间就顺手记录一下我学习的笔记吧~
学习笔记来自黑马程序员《MongoDB基础入门到高级进阶,一套搞定mongodb》
配套资料:点此资料链接 提取码:29ad

一、MongoDB简介

  • MongoDB是一个开源、高性能、无模式的文档型数据库,当初的设计就是用于简化开发和方便扩展,是NoSQL数据库产品中的一种。是最像关系型数据库(MySQL)的非关系型数据库。
  • 它支持的数据结构非常松散,是一种类似于 JSON 的 格式叫BSON,所以它既可以存储比较复杂的数据类型,又相当的灵活。
  • MongoDB中的记录是一个文档,它是一个由字段和值对(field:value)组成的数据结构。MongoDB文档类似于JSON对象,即一个文档认为就是一个对象。字段的数据类型是字符型,它的值除了使用基本的一些类型外,还可以包括其他文档、普通数组和文档数组。

1.1、与MySQL横向对比

在这里插入图片描述

1.2、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、其他特点:

如无模式(动态模式)、灵活的文档模型

1.3、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。每一个驱动都以特定语言的方式实现了这些类型,查看你的驱动的文档来获取详细信息。

数据类型参考表

在这里插入图片描述

二、下载安装MongoDB(以Windows10系统为例)

有关于MogoDB的介绍大家首先到MongoDB的官网(MongoDB官网),官网界面如下:
在这里插入图片描述

1、 选择上方的产品 -> Community Server并点击

在这里插入图片描述

2、点击之后跳转到以下页面,选择Select Package

在这里插入图片描述

3、随后跳转到下载页面,可以选安装包或者解压包,建议解压安装即可

在这里插入图片描述
在这里插入图片描述

4、解压出来的样子

建议将其bin目录配置到path环境变量中
在这里插入图片描述

5、启动MongoDB

5.1、可以自己创建一个data/db目录,用于存放之后的数据

在这里插入图片描述
在这里插入图片描述

5.2、命令行启动

进入到bin目录中,打开命令行终端,执行以下命令:

mongod --dbpath=../data/db

在这里插入图片描述
启动完成,占用27017端口

5.3、当然也可以使用配置文件启动

在MongoDB根目录下面创建一个conf文件夹(就是刚刚与data平级),并进入conf目录创建一个mongod.conf文件,写入以下内容:

storage:
  dbPath: D:\Server\mongodb-win32-x86_64-windows-7.0.1\data\db

在这里插入图片描述
此时可以使用配置文件的方式启动MongoDB命令如下:

mongod -f D:\Server\mongodb-win32-x86_64-windows-7.0.1\conf\mongod.conf

执行完毕可以看到同样启动成功
在这里插入图片描述

三、MongoDB Compass连接MongoDB

以前的版本,在下载下来的MongoDB压缩包的bin目录下,还有mongomongosh等命令的,用于打开连接MongoDB的图形客户端的,从6.0的版本开始,MongoDB将GUI客户端单独分离出来了,需要单独下载。

3.1、下载方式1

在这里插入图片描述

3.2、下载方式2

还是进入刚刚的官网,看图:
在这里插入图片描述
在这里插入图片描述
下载完成解压
在这里插入图片描述
执行.exe文件,会自动在桌面以及开始菜单多出相应的快捷方式,方便下次运行
在这里插入图片描述
连接成功,可以查看到默认的三个库了
在这里插入图片描述
在这里插入图片描述
好了,本篇就到此结束,希望能对大家有所帮助~

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

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

相关文章

Android 面经总结分享(相当走心)

背景描述 这是来自一位粉丝朋友的面经分享,他在 「Android 开发行业」 摸爬滚打5年多的开发,呆过的互联网公司有三家,均从事的Android 开发的工作。最后离职的一家公司也是做的最久的一家,工作了将近3年多时光。 废话不多说了&a…

机器学习 - 似然函数:概念、应用与代码实例

目录 一、概要二、什么是似然函数数学定义似然与概率的区别重要性举例 三、似然函数与概率密度函数似然函数(Likelihood Function)定义例子 概率密度函数(Probability Density Function, PDF)定义 区别与联系 四、最大似然估计&am…

Haskell网络编程:从数据采集到图片分析

概述 爬虫技术在当今信息时代中发挥着关键作用,用于从互联网上获取数据并进行分析。本文将介绍如何使用Haskell进行网络编程,从数据采集到图片分析,为你提供一个清晰的指南。我们将探讨如何使用亿牛云爬虫代理来确保高效、可靠的数据获取&am…

写爬虫?前端er何必用python

前言 说起网络爬虫,很多人第一时间想到python,但爬虫并非只能用python实现,虽然网上大部分爬虫文章都在说python爬虫,但对于前端程序员来说,我觉得js才是最屌的(对于简单爬取任务来说,复杂的我暂时没碰到~),下面说说我的经验(是的,仅限本人经验),希望能给各位前…

Qt 常用控件按钮Button 案例分析

目录 常用控件按钮 1.QPushButton 2.QToolButton 3.QRadioButton 4.QCheckBox 5.QCommandLinkButton 6.QDialogButtonBox 常用控件按钮 Push Button: 命令按钮。 Tool Button:工具按钮。 Radio Button:单选按钮。 Check Box: 复选框按钮 Command Link Button: 命今链…

2023年中国自动化微生物样本处理系统竞争现状及行业市场规模分析[图]

微生物检测能够对感染性疾病的病原体或者代谢物进行检测分析,是IVD的细分领域之一。2022年中国体外诊断市场规模1424亿元。 2015-2022年中国体外诊断市场规模 资料来源:共研产业咨询(共研网) 微生物检测由于样本类型多样&#xf…

HttpServletResponse对象

1.介绍 在Servlet API中,定义了一个HttpServletResponse接口,它继承自ServletResponse接口,专门用来封装HTTP响应消息。由于HTTP响应消息分为状态行、响应消息头、消息体三部分,因此,在HttpServletResponse接口中定义…

Netty RPC 实现

1 概念 RPC,即 Remote Procedure Call(远程过程调用),调用远程计算机上的服务,就像调用本地服务一样。RPC 可以很好的解耦系统,如 WebService 就是一种基于 Http 协议的 RPC。这个 RPC 整体框架如下&#…

优盘中毒了怎么办?资料如何恢复

在现代社会中,优盘成为我们日常生活与工作中必备的便携式存储设备。然而,正是由于其便携性,优盘也成为病毒感染的主要目标之一。本篇文章将帮助读者了解如何应对优盘中毒的情况,以及如何恢复因病毒感染丢失的资料。 ▶优盘为什么…

【Java】 DirectByteBuffer堆外内存回收

PhantomReference虚引用 在分析堆外内存回收之前,先了解下PhantomReference虚引用。 PhantomReference需要与ReferenceQueue引用队列结合使用,在GC进行垃圾回收的时候,如果发现一个对象只有虚引用在引用它,则认为该对象需要被回…

nvm的简介、安装、使用(简单明了)

一、nvm是什么? nvm是一个node的版本管理工具,可以简单操作node版本的切换、安装、查看。。。等等,与npm不同的是,npm是依赖包的管理工具。 二、nvm的安装。 1、windows包下载地址: 2、点击如下文件进行安装&#…

配置接口策略路由

【微|信|公|众|号:厦门微思网络】 【微思网络www.xmws.cn,成立于2002年,专业培训21年,思科、华为、红帽、ORACLE、VMware等厂商认证及考试,以及其他认证PMP、CISP、ITIL等】 组网需求 如图1所示,缺省情况下…

【TensorFlow2 之013】TensorFlow-Lite

一、说明 在这篇文章中,我们将展示如何构建计算机视觉模型并准备将其部署在移动和嵌入式设备上。有了这些知识,您就可以真正将脚本部署到日常使用或移动应用程序中。 教程概述: 介绍在 TensorFlow 中构建模型将模型转换为 TensorFlow Lite训练…

第九章-线程

初始时,CPU的执行流为进程;当产生了线程概念后,CPU执行流变为了线程,大大增大了一个周期以内进程的执行速度。 线程产生的作用就是为了提速,利用线程提速,原理就是实现多个执行流的伪并行,让处…

vue3前端开发系列 - electron开发桌面程序(2023-10月最新版)

文章目录 1. 说明2. 创建项目3. 创建文件夹electron3.1 编写脚本electron.js3.2 编写脚本proload.js 4. 修改package.json4.1 删除type4.2 修改scripts4.3 完整的配置如下 5. 修改App.vue6. 修改vite.config.ts7. 启动8. 打包安装9. 项目公开地址 1. 说明 本次安装使用的环境版…

提取log文件中的数据,画图

要提取的log格式如下: 代码如下: import reimport matplotlib.pyplot as plt import numpy as npimport argparse from os import path from re import searchclass DataExtractor(object): DataExtrator class def __init__(self, infile, keyword, out…

电脑上播放4K视频需要具备哪些条件?

在电视上播放 4K( 4096 2160 像素)视频是很简单的,但在电脑设备上播放 4K 视频并不容易。相反,它们有自己必须满足的硬件要求。 如果不满足要求,在电脑上打开 4K 分辨率文件或大型视频文件会导致卡顿、音频滞后以及更…

ROS中的命名空间

ROS中的节点、参数、话题和服务统称为计算图源,其命名方式采用灵活的分层结构,便于在复杂的系统中集成和复用。以下是一些命名的示例: /foo /stanford/robot/name /wg/node1计算图源命名是ROS封装的一种重要机制。每个资源都定义在一个命名空…

微信小程序wxml使用过滤器

微信小程序wxml使用过滤器 1. 新建wxs2. 引用和使用 如何在微信小程序wxml使用过滤器? 犹如Angular使用pipe管道这样子方便,用的最多就是时间格式化。 下面是实现时间格式化的方法和步骤: 1. 新建wxs 插入代码: /*** 管道过滤工…

泡泡玛特,难成“迪士尼”

作者 | 艺馨 豆乳拿铁 排版 | Cathy 监制 | Yoda 出品 | 不二研究 新增长难寻,新故事难讲。泡泡玛特(06682.HK)业绩增长承压的困局,都写在最新的半年报里。 曾经潮玩领域的王者、“潮玩第一股”泡泡玛特,主题城市乐园于9月26日在北京朝阳…