mongodb简介
Posted lay2017
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongodb简介相关的知识,希望对你有一定的参考价值。
一、nosql简介
RDBMS(关系型数据库)提供的结构化编程,让数据建模以及应用程序编程变得非常简单,带来了非常高的经济效益,并且学习成本也比较低。但在当今数据大爆炸时代,每时每刻都会海量的数据产生,对于数据的读写要求也越来越高,RDBMS已经不能满足人们的需求了,nosql则应运而生。
nosql(not only sql)意为:不再仅仅是结构化查询,它完全区别于RDBMS的数据存储结构,只需保证数据最终一致性而不是遵循ACID原则,读写性能远远超过RDBMS数据库。在大数据存储当中是必不可少的。
常见的nosql如:
1)redis
2)mongodb
3)memcached
二、mongo简介
mongo也是nosql,但是它和redis不同,它介于nosql和rdbms之间。采用C++编写的,是一个分布式文件存储的开源数据库系统,具备高性能、高可用、易扩展等特性。基本的数据结构是:key-value的结构,可以类比json数据结构来理解mongo的数据结构。
我们先看四个关键概念:
1)数据库(database)
与所有数据库系统一样,mongo也可以创建多个独立的database,database用来存储数据。
2)集合(collection)
我们可以类比RDBMS的“表”的概念来理解collection,collection存储在database当中。
3)文档(document)
我们可以类比RDBMS的“行”的概念来理解document,document存在于collection当中。
4)域(field)
我们可以类比RDBMS的“列”的概念来理解field,field存在于document中。
如下图:
三、数据类型
数据类型 | 描述 |
String | 字符串 |
Integer | 整型 |
Boolean | 布尔型 |
Double | 双精度 |
Min/Max keys | 将一个值和bson的最低值和最高值对比 |
Array | 数组或者列表 |
Timestamp | 时间戳 |
Object | 用于内嵌文档 |
Null | 创建空值 |
Sympol | 符号,一般与String相同 |
Date | 日期时间 |
Object ID | 对象ID |
Binary Data | 二进制 |
Code | js脚本代码 |
Regular expression | 正则表达式 |
以上的数据类型中特别提及一下Object ID,它类似于一个唯一主键可以进行快速的生成和排序,包含12byte:
0-3个字节是格林尼治时间的时间戳(晚北京8个小时)
4-6是机器标识码
7-8是进程ID
9-11是随机数
mongo中存储的文档必须有一个_id键。这个键的值可以是任何类型的,但是默认是Object ID。
由于ObjectId默认保存了创建的时间戳,所以你无需为你的document保存创建时间戳字段,你可以通过getTimestamp来获取该时间戳。如:
> var newObject = ObjectId() > newObject.getTimestamp() ISODate("2017-11-25T07:21:10Z")
四、总结
mongo采用C++编写,是分布式文件存储的开源数据库,高性能、高可用、易扩展,数据结构类似于json的结构,支持丰富的数据类型。
以上是关于mongodb简介的主要内容,如果未能解决你的问题,请参考以下文章
Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段
SpringCloud系列十一:SpringCloudStream(SpringCloudStream 简介创建消息生产者创建消息消费者自定义消息通道分组与持久化设置 RoutingKey)(代码片段
C#-WebForm-★内置对象简介★Request-获取请求对象Response相应请求对象Session全局变量(私有)Cookie全局变量(私有)Application全局公共变量Vi(代码片段