MongoDB 介绍
MongoDB是使用C++开发的跨平台开源文档型数据库,是NOSQL类型数据库中的佼佼者。具有高性能、高可用性、易扩展性,基于集合和文档概念。
数据库
数据库是集合的物理容器,每个数据库有属于其的一组在文件系统中的文件,单个MongoDB服务器有多个数据库。
集合
集合是一组文档,相当于RDBMS中的表。一个集合只能存在一个数据库中。集合不强制模式(schema),在集合中的文档可以有不同的字段,一般集合中的所有文档具有相似或相关的目的。
文档
文档是一组键值对的集合,文档具有动态模式,意味着同一集合下所有文档不需要有相同的字段或结构,而且同一字段可以存储不同数据类型的数据。
下面是RDBMS术语与MongoDB的对比:
示例文档
下面示例展示blog的文档结果,主要是逗号分割的键值对,即json数据。
{
_id: ObjectId(7df78ad8902c)
title: 'MongoDB Overview',
description: 'MongoDB is no sql database',
by: 'tutorials point',
url: 'http://www.tutorialspoint.com',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100,
comments: [
{
user:'user1',
message: 'My first comment',
dateCreated: new Date(2011,1,20,2,15),
like: 0
},
{
user:'user2',
message: 'My second comments',
dateCreated: new Date(2011,1,25,7,45),
like: 5
}
]
}
_id
_id 是12字节的16进制数值,确保每个文档的唯一性。插入文档时,可以提供,如果没有提供,系统自动生成。前4字节是当前时间戳,接下来3位是机器ID,再后面2位是MongoDB服务的进程ID,最后3位是自增值。
本文参考链接:https://blog.csdn.net/neweastsun/article/details/54800304