网站域名注册,wordpress 菜单 首页,云南百度推广开户,网络餐饮服务第三方平台提供者文章目录 前言一、MongoDB相关概念1.1 业务应用场景具体的应用场景什么时候选择MongoDB 1.2 MongoDB简介1.3 体系结构1.4 数据模型1.5 MongoDB的特点 二、本地单机部署2.1 Windows系统中的安装启动第一步#xff1a;下载安装包第二步#xff1a;解压安装启动1.命令行参数方式… 文章目录 前言一、MongoDB相关概念1.1 业务应用场景具体的应用场景什么时候选择MongoDB 1.2 MongoDB简介1.3 体系结构1.4 数据模型1.5 MongoDB的特点 二、本地单机部署2.1 Windows系统中的安装启动第一步下载安装包第二步解压安装启动1.命令行参数方式启动服务推荐2.配置文件方式启动服务验证服务是否启动成功配置环境变量mongdb开机自动启动 2.2 Shell连接mongodb(mongo命令)2.3 Compass-图形化界面客户端到MongoDB官网下载MongoDB Compass 地址https://www.mongodb.com/download-center/v2/compass?initialtrue 如果是下载安装版则按照步骤安装如果是下载加压缩版直接解压执行里面的 MongoDBCompassCommunity.exe 文件即可。 在打开的界面中输入主机地址、端口等相关信息点击连接 解压后点击exe文件  打开后直接点击连接即可(默认设置)  前言
MongoDB 是一个开源的 NoSQL 数据库它以其灵活性、高性能和可扩展性著称。MongoDB 的文档模型使得它非常适合存储复杂的数据结构并且易于进行扩展。它非常适合处理大量非结构化或半结构化数据并且能够支持高并发的读写操作。 MongoDB 将数据记录存储为 BSON 文档。BSON 是 JSON 文档的二进制表示形式但它包含的数据类型比 JSON 多。
一、MongoDB相关概念
官网https://www.mongodb.com/zh-cn
1.1 业务应用场景
传统的关系型数据库如MySQL在数据操作的“三高”需求以及应对Web2.0的网站需求面前显得力不从心。 解释“三高”需求 • High performance - 对数据库高并发读写的需求。 • Huge Storage - 对海量数据的高效率存储和访问的需求。 • High Scalability High Availability- 对数据库的高可扩展性和高可用性的需求。 而MongoDB可应对“三高”需求。
具体的应用场景
社交场景使用 MongoDB 存储存储用户信息以及用户发表的朋友圈信息通过地理位置索引实现附近的人、地点等功能。游戏场景使用 MongoDB 存储游戏用户信息用户的装备、积分等直接以内嵌文档的形式存储方便查询、高效率存储和访问。物流场景使用 MongoDB 存储订单信息订单状态在运送过程中会不断更新以 MongoDB 内嵌数组的形式来存储一次查询就能将 订单所有的变更读取出来。物联网场景使用 MongoDB 存储所有接入的智能设备信息以及设备汇报的日志信息并对这些信息进行多维度的分析。视频直播使用 MongoDB 存储用户信息、点赞互动信息等。
这些应用场景中数据操作方面的共同特点是
数据量大写入操作频繁读写都很频繁价值较低的数据对事务性要求不高 对于这样的数据我们更适合使用MongoDB来实现数据的存储。
什么时候选择MongoDB
在架构选型上除了上述的三个特点外如果你还犹豫是否要选择它可以考虑以下的一些问题
应用不需要事务及复杂 join 支持新应用需求会变数据模型无法确定想快速迭代开发应用需要2000-3000以上的读写QPS更高也可以应用需要TB甚至 PB 级别数据存储应用发展迅速需要能快速水平扩展应用要求存储的数据不丢失 应用需要99.999%高可用应用需要大量的地理位置查询、文本查询
如果上述有1个符合可以考虑 MongoDB2个及以上的符合选择 MongoDB 绝不会后悔。 相对于MySQLMongoDB可以以更低的成本解决问题包括学习、开发、运维等成本
1.2 MongoDB简介
MongoDB是一个开源、高性能、无模式的文档型数据库当初的设计就是用于简化开发和方便扩展是NoSQL数据库产品中的一种。是最像关系型数据库MySQL的非关系型数据库。
它支持的数据结构非常松散是一种类似于 JSON 的 格式叫BSON所以它既可以存储比较复杂的数据类型又相当的灵活。
MongoDB中的记录是一个文档它是一个由字段和值对field:value组成的数据结构。MongoDB文档类似于JSON对象即一个文档认为就是一个对象。字段的数据类型是字符型它的值除了使用基本的一些类型外还可以包括其他文档、普通数组和文档数组。
1.3 体系结构
MySQL和MongoDB对比
SQL术语/概念MongoDB术语/概念解释/说明databasedatabase数据库tablecollection数据库表/集合rowdocument数据记录行/文档columnfield数据字段/域indexindex索引table joinscollection表连接,MongoDB不支持嵌入文档MongoDB通过嵌入式文档来替代多表连接primary keyprimary key主键,MongoDB自动将_id字段设置为主键
1.4 数据模型
MongoDB的最小存储单位就是文档(document)对象。文档(document)对象对应于关系型数据库的行。数据在MongoDB中以BSONBinary-JSON文档的格式存储在磁盘上。
BSONBinary Serialized Document Format是一种类json的一种二进制形式的存储格式简称Binary JSON。BSON和JSON一样支持内嵌的文档对象和数组对象但是BSON有JSON没有的一些数据类型如Date和BinData类型。
BSON采用了类似于 C 语言结构体的名称、对表示方法支持内嵌的文档对象和数组对象具有轻量性、可遍历性、高效性的三个特点可以有效描述非结构化数据和结构化数据。这种格式的优点是灵活性高但它的缺点是空间利用率不是很理想。
Bson中除了基本的JSON类型string,integer,boolean,double,null,array和objectmongo还使用了特殊的数据类型。这些类型包括date,object id,binary data,regular expression 和code。每一个驱动都以特定语言的方式实现了这些类型查看你的驱动的文档来获取详细信息。 BSON数据类型参考列表
数据类型描述举例字符串UTF-8字符串都可表示为字符串类型的数据{“x” : “foobar”}对象id对象id是文档的12字节的唯一ID{“X” :ObjectId() }布尔值真或者假true或者false{“x”:true}数组值的集合或者列表可以表示成数组{“x” [“a”, “b”, “c”]}32位整数类型不可用。JavaScript仅支持64位浮点数所以32位整数会被自动转换。shell是不支持该类型的shell中默认会转换成64位浮点数64位整数不支持这个类型。shell会使用一个特殊的内嵌文档来显示64位整数shell是不支持该类型的shell中默认会转换成64位浮点数64位浮点数shell中的数字就是这一种类型{“x”3.14159“y”3}null表示空值或者未定义的对象{“x”:null}undefined文档中也可以使用未定义类型{“x”:undefined}符号shell不支持shell会将数据库中的符号类型的数据自动转换成字符串正则表达式文档中可以包含正则表达式采用JavaScript的正则表达式语法{“x” /foobar/i}代码文档中还可以包含JavaScript代码{“x” function() { /* …… */ }}二进制数据二进制数据可以由任意字节的串组成不过shell中无法使用最大值/最小值BSON包括一个特殊类型表示可能的最大值。shell中没有这个类型。{“x”:null} 提示 shell默认使用64位浮点型数值。{“x”3.14}或{“x”3}。对于整型值可以使用NumberInt4字节符号整数或NumberLong8字节符号整数{“x”:NumberInt(“3”)}{“x”:NumberLong(“3”)} 1.5 MongoDB的特点
MongoDB主要有如下特点 高性能 MongoDB提供高性能的数据持久性。特别是, 对嵌入式数据模型的支持减少了数据库系统上的I/O活动。 索引支持更快的查询并且可以包含来自嵌入式文档和数组的键。文本索引解决搜索的需求、TTL索引解决历史数据自动过期的需求、地理位置索引可用于构建各种 O2O 应用 mmapv1、wiredtiger、mongorocksrocksdb、in-memory 等多引擎支持满足各种场景需求。 Gridfs解决文件存储的需求。 高可用性 MongoDB的复制工具称为副本集replica set它可提供自动故障转移和数据冗余。 高扩展性 MongoDB提供了水平可扩展性作为其核心功能的一部分。 分片将数据分布在一组集群的机器上。海量数据存储服务能力水平扩展 从3.4开始MongoDB支持基于片键创建数据区域。在一个平衡的集群中MongoDB将一个区域所覆盖的读写只定向到该区域内的那些 片。 丰富的查询支持 MongoDB支持丰富的查询语言支持读和写操作(CRUD)比如数据聚合、文本搜索和地理空间查询等。 其他特点如无模式动态模式、灵活的文档模型、
二、本地单机部署
2.1 Windows系统中的安装启动
第一步下载安装包
MongoDB 提供了可用于 32 位和 64 位系统的预编译二进制包你可以从MongoDB官网下载安装MongoDB 预编译二进制包下载地址 https://www.mongodb.com/download-center#community
注意本文的安装的是压缩版不是安装版(有安装步骤的方式)。
根据上图所示下载 zip 包。
提示版本的选择 MongoDB的版本命名规范如x.y.z y为奇数时表示当前版本为开发版如1.5.2、4.1.13 y为偶数时表示当前版本为稳定版如1.6.3、4.0.10 z是修正版本号数字越大越好。
详情http://docs.mongodb.org/manual/release-notes/#release-version-numbers
第二步解压安装启动
将压缩包解压到一个目录中。 在解压目录中手动建立一个目录用于存放数据文件
1.命令行参数方式启动服务推荐
在mongodb中新建文件夹data/db和data/log/mongo.log) 进入bin文件夹中cmd运行
mongod --dbpath ..\data\db --logpath ..\data\log\mongo.log2.配置文件方式启动服务
在解压目录中新建 config 文件夹该文件夹中新建配置文件 mongod.conf 内如参考如下
storage:#The directory where the mongod instance stores its data.Default Value is \data\db on Windows.dbPath: E:\tool\mongodb-win32-x86_64-2008plus-ssl-4.0.12\data\db详细配置项内容可以参考官方文档https://docs.mongodb.com/manual/reference/configuration-options/
【注意】
配置文件中如果使用双引号比如路径地址自动会将双引号的内容转义。如果不转义则会报错
error-parsing-yaml-config-file-yaml-cpp-error-at-line-3-column-15-unknown-escape-character-d解决方法 a. 对 \ 换成 / 或 \ b. 如果路径中没有空格则无需加引号。
配置文件中不能以Tab分割字段 解决 将其转换成空格。 启动方式
mongod -f ../config/mongod.conf
或
mongod --config ../config/mongod.conf更多参数配置
systemLog:destination: file#The path of the log file to which mongod or mongos should send all diagnostic logging informationpath: D:\tools\mongodb-win32-x86_64-2008plus-ssl-4.0.12/log/mongod.loglogAppend: true
storage:journal:enabled: true#The directory where the mongod instance stores its data.Default Value is /data/db.dbPath: D:\tools\mongodb-win32-x86_64-2008plus-ssl-4.0.12/data
net:#bindIp: 127.0.0.1port: 27017
setParameter:enableLocalhostAuthBypass: false验证服务是否启动成功
启动成功后在浏览器中输入http://127.0.0.1:27017出现以下情况表示启动成功。
接下来的配置不是必须的可以跳过。
配置环境变量
右键此电脑选择属性 选择高级系统设置 选择环境变量 找到Path点击编辑 点击新建将mongodb的bin文件夹的绝对路径复制到这里然后一直点确定直到控制面板。 winR然后输入cmd打开黑窗口输入mongod --version出现版本号即为配置成功。
mongdb开机自动启动
如果每次都要通过cmd的方式启动服务也太麻烦了这里可以选择设置成开机自启动。 还是打开cmd窗口不过这次是以管理员身份运行然后输入如下命令
mongod --dbpath D:\tools\mongodb-win32-x86_64-2008plus-ssl-4.0.12\data\db --logpath D:\tools\mongodb-win32-x86_64-2008plus-ssl-4.0.12\data\log\mongo.log -install -serviceName MongoDB注意路径换成安装时的绝对路径 然后使用winR然后输入services.msc命令打开服务进行查看
2.2 Shell连接mongodb(mongo命令)
cmd新开一个命令提示符输入以下shell命令即可完成登陆
在命令提示符输入以下shell命令即可完成登陆
mongo
或
mongo --host127.0.0.1 --port27017查看已经有的数据库 show dbs
admin 0.000GB
config 0.000GB
local 0.000GBshow databases
admin 0.000GB
config 0.000GB
local 0.000GB退出mongodb exit2.3 Compass-图形化界面客户端
到MongoDB官网下载MongoDB Compass 地址https://www.mongodb.com/download-center/v2/compass?initialtrue 如果是下载安装版则按照步骤安装如果是下载加压缩版直接解压执行里面的 MongoDBCompassCommunity.exe 文件即可。 在打开的界面中输入主机地址、端口等相关信息点击连接 解压后点击exe文件 打开后直接点击连接即可(默认设置)
后续文章 MongoDB笔记02-MongoDB基本常用命令 MongoDB笔记03-MongoDB索引 MongoDB笔记04-SpringBoot整合MongoDB