MongoDB 简介
MongoDB 是由 C++ 编写的一个就分布式文件存储的开源数据库。旨在为 Web 应用提供可扩展的高性能数据存储解决方案。
MongoDB 将数据存储为一个文档,结构由键值对组成类似一个 JSON 对象,如:
{
name:'hvkcoder',
age :18
language:['JavaScript','Node.js','C#','Java']
}
MongoDB 的特点
易于使用
- MongoDB是一个面向文档(document-oriented) 的数据库,而不是关系型数据库。
- 与关系型数据库相比,面向文档的数据库不再有“行”的概念,取而代之的是更为灵活的“文档”模型。
- 不再有预定模式:文档的键和值不再是固定的类型和大小。
易于扩展
- 纵向扩展就是使用计算能力更强的机器,横向扩展就是通过分区将数据分散到更多机器上。
- MongoDB 的设计采用横向扩展。面向文档的数据模型使它能很容易的在多台服务器之间进行数据分割。
- MongoDB 能自动处理跨集群的数据和负载,自动重新分配文档,以及将用户请求路由到正确的机器上。
丰富的功能
- 索引(indexing): MongoDB 支持通用二进制索引,允许多种快速查询,且提供唯一索引、地理空间索引,以及全文索引。
- 聚合(agregation): MongoDB 支持“聚合管道”(aggregation pipeline)。用户能通过简单的片段创建复杂的聚合,并通过数据库自动优化
- 特殊的集合类型:MongoDB 支持存在时间有限的集合,用于保存某时刻的过期数据。同样也支持固定大小集合,用于保存近期数据。
- 文件存储
卓越的性
- MongoDB能够对文档进行动态填充。
- MongoDB能够预分配数据文件,利用额外的空间来换取稳定的性能。
- MongoDB将尽可能多的内存用作缓存,试图每次查询自动选择正确的索引。
MongoDB 配置与启动
创建文件目录结构
.
├── db //数据存储位置
├── log //数据日志
├── config //配置文件
│ └── mongod.conf //数据库配置文件
打开文件 mongod.log 并输入以下内容
port = 12345 //mongodb数据库的端口号
dbpath = db //mongodb数据库存储位置
logpath = log/mongod.log //mongodb日志
fork = ture //服务后台运行 仅对 Unix 系统有效
在命令行中输入以下命令,用于启动 MongoDB数据库
mongod -f config/mongod.conf
在命令行中输入以下命令,用于连接 MongoDB数据库
mongo 127.0.0.1:12345
在命令哈去哪个中输入以下命令,用于关闭MongoDB数据库
db.shutdownServer()
重新启动 MongoDB 服务,需要删除 lock 文件 和日志文件。再输入启动 MongoDB 服务命令