概述
MongoDB是目前非常流行的一种非关系型数据库,作为入门系列的第一篇本篇文章主要介绍Mongdb的基础概念知识包括命名规则、数据类型、功能以及安装等。
环境:
OS:Windows
Version:3.4
一、安装
1.下载解压
在官网下载对应操作系统版本的安装包,然后解压;我这里使用Windows环境安装测试。
2.在D盘创建Mongodb\data\db目录
3.初始化数据
最好先将bin目录加入到环境变量,否则要到命令目录下执行。
mongod --dbpath D:\mongodb\data\db
4.启动服务
在D:\mongodb目录下创建mongo.config配置文件,配置文件内容如下,这里只配置了数据和日志路径,其它的参数暂时默认。
dbpath=D:\mongodb\data\db
logpath=D:\mongodb\data\log\mongo.log
将mongodb添加到服务启动项
mongod --config D:\mongodb\mongo.config --install --serviceName "MongoDB"
删除服务启动项命令
mongod --remove --serviceName "MongoDB"
启动服务
net start MongoDB
测试服务是否启动,在浏览器中输入localhost:27017;如果没有手动指定端口那么默认端口就是27017
二、报错处理
1.api-ms-win-crt-runtime-11-1-0.dll
无法启动此程序,因计算机中都是api-ms-win-crt-runtime-11-1-0.dll
处理方法:下载安装Windows6.1-KB2999226-x64补丁
https://www.microsoft.com/zh-cn/download/details.aspx?id=49093
三、基础概念
1.特点
MongoDB并不具备一些关系型数据库中和普遍的功能,如连接和复杂的多行事务。省略这些功能是出于架构上的考虑(为了得到更好的扩展性),因为在分布式系统中这两个功能难以高效的实现,同时为了追求性能MongoDB会尽可能的将一些处理逻辑交给客户端(通过驱动程序或应用程序代码来实现)。
2.功能
1.索引
MongoDB支持通用的二级索引,允许多种快捷查询,且提供唯一索引、复合索引、地理空间索引以及全文索引等。
2.聚合
MongoDB支持“聚合管道”,用户能通过简单的片段创建复杂的聚合,并通过数据库自动优化。
3.特殊的聚合类型
MongoDB支持存在时间有限的集合,适用于那些将在某个时刻过期的数据,如会话。MongoDB也支持固定大小的集合,用于保存近期数据,如日志。
4.文件存储
MongoDB支持一种非常易用的协议,用于存储大文件和文件元数据。
3.基本概念
- 文档是MongoDB中数据的基本单元,类似关系型数据库中的行。
- 一个实例可以拥有多个相互独立的数据库,每个数据库都拥有自己的集合,集合类似关系型数据库中的表。
- 每个文档都有一个特殊的键“_id”,这个键在文档所属的集合中是唯一的。
- 每个文档不能有重复的键值。例如{"blog":"news","blog":"book"},在该文档中键值blog重复。
- 一个集合可以存储混合的文档,即不同类型的文档。但通常不这样做,为了方便查询和管理一般一种类型的数据放一个集合。
- MongoDB不但区分类型,而且区分大小写。
4.命名、规则
文档
- 键不能含有\0(空字符)。这个字符用于表示键的结尾。
- .和$具有特殊意义,只能在特定环境下使用。
集合
- 集合名不能是空字符串
- 集合名不能包含\0字符
- 集合名不能以"system."开头
- 集合名中不能使用保留字符“$”
数据库
- 不能是空字符串("")。
- 命名中不能含有:/、\、.、''、*、<、>、:、|、?、$、\0(空字符)。一般由字母和数字组成。
- 数据库名区分大小写,建议小写。
- 数据库名最多64个字节。
5.数据类型
1.null
用于表示空值或不存在的字段
例:{"x":null}
2.布尔型
true和flase两个值,例:
{"x":ture}
3.数值
默认使用64位的浮点型数值,对于整形值,可以使用NumberInt类(4字节带符号整数)或NumberLong类(表示8字符带符号整数)。例:
默认:{"x":3.14}或者{"x":3}
指定整形值:{"x":NumberInt("3")}或者{"x":NumberLong("3")}
4.字符串
{"x":"foobar"}
5.日期
{"x":new Date()}
6.正则表达式
{"x" : /a/b}
7.数组
{"x" : ["a","b","c"]}
8.内嵌文档
文档可以嵌套其它文档,被嵌套的文档作为父文档的值
{"x" :{"a" : "b"}}
9.对象id
对象id是一个12字节的ID,是文档的唯一标识。
10.二进制类型
二进制数据是一个任意字节的字符串
11.代码
总结
备注: 作者:pursuer.chen 博客:http://www.cnblogs.com/chenmh 本站点所有随笔都是原创,欢迎大家转载;但转载时必须注明文章来源,且在文章开头明显处给明链接,否则保留追究责任的权利。 《欢迎交流讨论》 |