MongoDB快速入门
MongoDB 是一个跨平台的,面向文档的数据库,是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
数据库
数据库是一个集合的物理容器。一个单一的MongoDB服务器通常有多个数据库。
集合
文档组,类似于关系数据库中的表格。
集合存在于数据库中,集合没有固定的结构,这意味着你在对集合可以插入不同格式和类型的数据,但通常情况下我们插入集合的数据都会有一定的关联性。
比如,我们可以将以下不同数据结构的文档插入到集合中:
{"site":"www.baidu.com"}
{"site":"www.google.com","name":"Google"}
{"site":"www.itcast.cn","name":"传智教程","num":5}
当第一个文档插入时,集合就会被创建。
文档
文档是一组键 - 值对。
RDBMS VS MongoDB
下面给出的表显示RDBMS(关系型数据库管理系统)术语 与 MongoDB 的关系
SQL术语/概念 | MongoDB术语/概念 | 解释/说明 |
---|---|---|
database | database | 数据库 |
table | collection | 数据库表/集合 |
row | document | 数据记录行/文档 |
column | field | 数据属性/字段(域) |
index | index | 索引 |
table joins | Embedded Documents | 表连接,MongoDB3.2提供了Join操作 |
primary key | primary key | 主键,MongoDB默认自动将_id字段设置为主键,可以手动设置 |
通过下图实例,我们也可以更直观的的了解Mongo中的一些概念:
_id是一个12字节的十六进制数,保证每一份文件的唯一性。您可以自己去设置_id插入文档。如果没有提供,那么MongoDB的每个文档提供了一个独特的ID。
这12个字节:
前4个字节为当前时间戳;
未来3个字节的机器ID;
接下来的2个字节的MongoDB的服务进程id;
剩余3个字节是简单的增量值
一个字节等于2位十六进制(一位十六进制的数等于四位二进制的数。一个字节等于8位二进制数)
示例文档
下面给出的示例显示了一个博客网站,这是一个类似于 JSON 对象键值对文档结构。
{
_id: ObjectId("57146ec5de7375577083d127")
title: 'MongoDB Overview',
description: 'MongoDB is no sql database',
by: 'itcast.cn',
url: 'http://www.itcast.cn',
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
}
]
}