当前位置:数据库 > mongodb >>

MongoDB自学笔记2---1.2初识MongoDB

MongoDB自学笔记2---1.2初识MongoDB
 
MongoDB自学笔记1----1.1NoSQL是什么
http://www.zzzyk.com/database/201307/224629.html
 
1.2.1 MongoDB简介
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
 
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。其最新的版本的MongoDB2.4,添加了对地理位置的索引搜索、全文检索等功能。
 
同时MongoDB是一个面向集合的、模式自由的文档型数据库。
文档是mongodb中的最核心的概念,是其核心单元,我们可以将文档类比成关系型数据库中的每一行数据。多个键及其关联的值有序的放置在一起就是文档。
面向集合指的是MongoDB中没有表的概念。将关系型数据库中的表的概念在MongoDB中使用集合实现。集合就是一组文档的组合。
 
模式自由指的是MongoDB集合中的每个文档的模式是没有约束的,也就是说MongoDB一个集合中存储的文档的结构可以是不同的。例如下面的两个文档可以存储在同一个集合中。
{_id:1,name:”xiangyue”}
{_id:2,course:”math”,press:”hebei”}
1.2.2 为什么选择MongoDB
丰富的数据模型
MongoDB放弃了关系型数据库中“行”的概念,将其转换为“文档”模型。利用文档模型我们可以实现文档的嵌套,这样我们可以使用一个文档来表示更加复杂、具有层次结构的数据。另外MongoDB中的文档是无模式的,所以这个对于我们以后为数据库中添加、删除字段等修改数据库模式的操作比较方便。
容易扩展
随着web2.0的兴起,数据量开始飞速的增长,原来一台服务器能够存储所有的数据,现在一台服务器已经不能满足要求了,这种情况下我们可以更换更大的硬盘或者更高配置的服务器,但是这样的成本比较高。所以很多人选择分布式存储,但是对于关系型数据库来说,实现分布式比较麻烦,而对于MongoDB来说实现分布式是比较容易的。MongoDB在设计之初就完全考虑到了分布式的应用,所以在MongoDB中可以使用主从复制、副本集很容易完成扩展。
功能强大且管理简单
MongoDB支持索引、javascript存储、聚合Map-Reduce、固定集合、文件存储等功能。MongoDB尽量让服务器自治来简化服务器的管理工作。比如在使用分布式的时候,主服务器挂了,会自动切换到备份服务器上。
最类似SQL数据库
MongoDB虽然抛弃了“行”的概念,但是“文档”的概念也可以类比为行,这样对于一些从关系型数据库转过来的人也比较容易理解。另外它提供了丰富的查询功能,可以简化我们很多的操作。
大公司的支持
对于我们使用一个产品,有时候就会担心是否有大公司的支持。对于有大公司支持的产品我们使用起来就比较放心,否则我们就会考虑许多问题,畏首畏尾。MongoDB是有10gen公司提供支持。
 
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,