共计 3599 个字符,预计需要花费 9 分钟才能阅读完成。
这篇文章将为大家详细讲解有关 MongoDB 数据库基础操作的示例分析,丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
为了保存网站的用户数据和业务数据,通常需要一个数据库。MongoDB 和 Node.js 特别般配,因为 Mongodb
是基于文档的非关系型数据库,文档是按 BSON(JSON 的轻量化二进制格式)存储的,增删改查等管理数据库的命令和 JavaScript 语法很像。
数据库
数据库,顾名思义,是数据存储的仓库,主要功能有两个
1、有组织地存放数据
与在磁盘上自己存放文件不同,数据库替用户组织了数据的存储形式,用户只需要按照数据库提供的接口将数据写入,数据便会按照标准的格式被存储起来
2、按照不同的需求进行查询
数据库不仅要能写入数据,还支持数据查询,并且能够按照不同的需求进行查询。因为存储是有组织的,因此查询上可以更规范化,查询速度也会快很多
不同的数据库的区别就是存放数据的组织不同,同时提供了不同种类的查询。用户可以按照自己的需求,选择合适的数据库
【分类】
数据库的分类有很多种,按照对 SQL 语言的支持,可以分为以下两种:
1、SQL 数据库,比如 Oracle、Mysql 等
2、NoSQL 数据库,比如 Redis、MongoDB 等
随着在规模互联网应用的出现,传统的 SQL 数据库遇到了一些设计上的弊端。比如,SQL 对表的定义使应用不够灵活,横向扩展比较困难。与一些特性难以满足相比,反而是 SQL 数据库的很多特性没有用武之地。比如,在很多场景下,及时存取并不是必要的,也没有特别多的事务需求,而这些额外的特性消耗着 SQL 数据库的性能
因此 NoSQL 数据库应运而生,NoSQL 全称是 Not Only SQL,意即 不仅仅是 SQL。但事实上,绝大多数 NoSQL 数据库都放弃了对 SQL 语言的支持。与 SQL 关系型数据库相比,NoSQL 非关系型数据库大多放弃了一些特性。比如,放弃了实时一致性、对事务的完整支持以及多表查询等。听起来缺点很多,但收益也明显,NoSQL 数据库简单便捷、方便扩展,并且有更好的性能
概述
MongoDB 是一个开源的 NoSQL 数据库,在国内被称为芒果数据库。Linux、Apache、MySQL 和 PHP 组成了非常有名的 LAMP 架构。现在,有人提议将 LAMP 中的代表 M 的 MySQL 替换为 MongoDB
NoSQL 数据库有很多,为什么要选择 MongoDB 呢?
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写,旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 使用集合(collection)和文档(document)来描述和存储数据,集合(collection)就相当于表,文档(document)相当于行,字段相当于列,不像 MySQL 之类的关系型数据库,表结构是固定的,比如某一行由若干列组成,行行都一样,而 MongoDB 不同,一个集合里的多个文档可以有不同的结构,更灵活一些
MongoDB 有自己很鲜明的特色,总结起来有以下 4 条
1、没有表结构的限制
传统 SQL 数据库中,对每张表都需要定义表结构。如果有新的存储需求,往往需要添加新的字段,更改表结构。在一些场景下,会显得很不方便,而对于 MongoDB,这不再是问题。因为它没有表结构这个概念,在使用一张表之前,不需要对这张表进行任何初始化操作。MongoDB 的这种特性对快捷开发和多变的业务需求是很合适的
2、完全的索引支持
有些 NoSQL 数据库,比如 redis,它是内存数据库,速度很快。但是,做为键值数据库,只支持一种按键查询的方式。灵活性、使用范围和易用性都受到影响;再比如 hbase,写入速度很快。但是,同样查询受限,它只支持单索引,二级索引需要自己实现
而 MongoDB 支持单键索引、多键索引、全文索引和地理位置索引。所以 MongoDB 是功能非常完善的 NoSQL 数据库,也被称为最接近关系数据库的非关系数据库
3、良好的数据安全性和方便的规模扩展
MongoDB 使用复制集做多副本存储,以保证数据的安全性。同时,MongoDB 内置的分片技术可以很方便地进行数据规模的扩展。分片技术是很新颖的一个特性,它包含了自动数据接口,动态扩容和缩容等一系列在其他数据库中需要大量人工操作的工作,同时提供了对数据库的统一访问入口,不需要在应用层再进行分发,显著减少了人工成本
4、完善的文档支持和驱动支持
安装
首先,在官网的下载页面选择合适的 MongoDB 版本进行下载
然后,一步一步进行安装即可
默认情况下,安装到 C 盘的 Program Files 文件夹下的 MongoDB 文件夹中
服务器配置
【搭建服务器】
搭建服务器,需要进行以下几个步骤
1、创建 data 文件夹存储数据库的数据文件;创建 log 文件夹存储数据库的日志文件;创建 bin 文件夹存储数据库的可执行文件;创建 conf 文件夹来存储数据库的配置文件
2、在 windows 系统下需要设置环境变量,否则在命令行中会提示 mongod 命令不可用
在环境变量的 path 中,添加 mongod.exe 文件的目录
3、接下来,有两种方式启动 mongoDB 服务,一种如下所示,设置 dppath 参数值为自定义的目录路径
mongod --db
path=D:/app/mongo/data
由下图看出,mongodb
的默认端口是 27017
4、另一种是在 conf 文件夹下新建 mongod.conf 文件,在这个文件中将设置 mongodb
启动的配置参数
db
path = datalogpath = log/mongod.log
mongod -f conf/mongod.conf
这种方法在命令行工具中没有任何提示,因为记录已经保存到日志文件中,此时 mongodb
服务已经正常开启
【连接服务器】
在搭建好 mongodb
服务器之后,需要使用客户端 mongo 进行连接,才能进行下一步的操作
因为是使用 mongo 连接 mongodb
服务器,所以需要保证启动 mongodb
服务器的命令行工具不被关闭,新开一个命令行工具,并输入 mongo 127.0.0.1/test,test 为数据库的名称
【关闭 mongod 服务】
首先切换到 admin 数据库 (use admin),然后使用db
.shutdownServer() 命令来关闭服务
数据库操作
【默认】
MongoDB 中默认的数据库为 test,如果没有创建新的数据库,集合将存放在 test 数据库中
【查看】
使用 show db
s 来查看数据库
show db
s
【创建 / 切换】
使用 use 命令来切换 / 创建数据库,会发现创建的数据库并不在数据库的列表中,要显示它,需要向数据库插入一些数据
use db
_name
【显示当前数据库】
使用 db
命令来显示当前数据库
db
【将数据写入集合中】
使用 db
. 集合名.insert(文档) 来将文档的数据写入集合中,文档的格式为 JSON。而所有存储在集合中的数据都是 BSON 格式。BSON 是一种类 json 的一种二进制形式的存储格式,简称 Binary JSON。
db
.collection_name.insert()
【查看集合】
上面的插入操作,会自动创建集合db
1_coll1,使用 show collections 命令可以查看当前数据库中的所有集合
【删除数据库】
这将删除当前所选数据库。如果没有选择任何数据库,那么它将删除默认的 test‘数据库
db
.dropDatabase()
集合操作
集合类似于 SQL 数据库中的数据表,标识为 collection
【查看集合】
可以使用命令 show collections 检查创建的集合
[注意]也可以使用 show tables 来查看集合
【创建集合】
在插入文档时,MongoDB 首先检查上限集合 capped 字段的大小,然后检查 max 字段
db
.createCollection(name, {capped: Boolean , autoIndexId: Boolean , size: number , max number} )
name: 集合的名字
capped: 是否启用集合限制,如果开启需要制定一个限制条件,默认为不启用,这个参数没有实际意义
max: 集合中最大条数限制,默认为没有限制
size: 限制集合使用空间的大小,默认为没有限制,size 的优先级比 max 要高
autoIndexId: 是否使用_id 作为索引,默认为使用(true 或 false)
[注意]向集合中插入文档时,如果集合不存在,则会自动创建集合
【删除集合】
MongoDB 的 db
.collection_name.drop() 用于从数据库中删除集合。如果选定的集合成功删除,drop()方法将返回 true,否则返回 false
关于“MongoDB 数据库基础操作的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。