一、nosql
了解mongodb之前先了解一下nosql,nosql是not only sql的缩写。由提供缺乏sql关系数据库的严格限制模型的存储和检索技术组成。主要是简化设计、水平扩展以及对数据的可用性进行更精细的控制。nosql有多种技术例如:redis的键值结构、hbase的列结构等。
二、mongodb
mongodb也是nosql的一种。它基于的文档模型把数据对象作为一个集合中单独的文档来存储。用它来提供高性能、高可用性和自动扩展的数据存储。
三、集合
mongodb通过使用集合将数据分组在一起。集合仅仅是一组具有相同或类似用途的文档。集合类似于传统sql数据库的表。只是集合不执行严格的模式,同一集合中的文档可以具有彼此略微不同的结构。
四、文档
文档是mongodb数据库中单个数据实体的表示。sql的行数据是平坦的,行中的每个值都有一个列。在mongodb中文档可以包含嵌入子文档,从而为应用程序提供更密切的内在数据模型。在mongodb中代表文档的记录被存储为bson,这是json的一个轻量级的二进制形式。它的字段/值对应于javascript的属性和值。同时在mongodb中文档的最大大小是16mb。这可以防止ram使用过量或对文件系统产生剧烈冲击。
此外,文档的字段名不能包含(null)字符、句点(.)或美元符号($)._id字段名是为对象的id保留的。该_id字段是系统中的一个唯一的id,它由以下几个部分组成:
- 1.一个4字节的值,代表从纪元以来过去的秒数。
- 2.一个3字节的机器标识符
- 3.一个2字节的进程id
- 4.一个3字节的计数器,从一个随机值开始
五、mongodb数据类型
mongodb为每一种数据类型分配了从1到255的整数id号,可使用它来按类型查询。
类型 | 说明 | 编号 |
---|---|---|
double | 双精度数值 | 1 |
string | 字符串 | 2 |
object | 对象 | 3 |
array | 数组 | 4 |
binary data | 二进制数据 | 5 |
object id | 对象id | 7 |
boolean | 布尔值 | 8 |
date | 日期 | 9 |
null | 空值 | 10 |
regular expression | 正则表达式 | 11 |
javascript | javascript | 13 |
symbol | 符号 | 14 |
javascript(with scope) | javascript(带作用域) | 15 |
32-bit intger | 32位整数 | 16 |
timestamp | 时间戳 | 17 |
64-bit integer | 64位整数 | 18 |
min key | 最小值 | 255 |
max key | 最大值 | 127 |
当比较不同的bson类型的值时,nongodb使用下面的比较顺序从最低到最高:
- 1.最小键(内部类型)
- 2.空值
- 3.数值
- 4.符号、字符串
- 5.对象
- 6.数组
- 7.二进制数据
- 8.对象id
- 9.布尔值
- 10.日期,时间戳
- 11.正则表达式
- 12.最大键(内部类型)
到此这篇关于mongodb数据库基础的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持代码网。
发表评论