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简介的主要内容,如果未能解决你的问题,请参考以下文章

详解MongoDB索引优化

1.MongoDB简介

Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段

MongoDB PHP

SpringCloud系列十一:SpringCloudStream(SpringCloudStream 简介创建消息生产者创建消息消费者自定义消息通道分组与持久化设置 RoutingKey)(代码片段

C#-WebForm-★内置对象简介★Request-获取请求对象Response相应请求对象Session全局变量(私有)Cookie全局变量(私有)Application全局公共变量Vi(代码片段