1.2.1MongoDB简介
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公司提供支持。

MongoDB自学笔记2---1.2 初识MongoDB的更多相关文章

  1. MongoDB学习笔记(1):MongoDB的安装和说明

    MongoDB学习笔记(1):MongoDB的安装和说明 快速开始 下载地址 官网下载: https://www.mongodb.com/download-center?jmp=nav#communi ...

  2. MongoDB自学笔记1----1.1 NoSQL是什么?

    第一章 走进MongoDB 1.1NoSQL是什么?       1.1.1NoSQL简介        对于不了解NoSQL的人都会认为NoSQL为No SQL,即不是SQL.但是这种理解是错误的, ...

  3. MongoDB学习笔记系列

    回到占占推荐博客索引 该来的总会来的,Ef,Redis,MVC甚至Sqlserver都有了自己的系列,MongoDB没有理由不去整理一下,这个系列都是平时在项目开发时总结出来的,希望可以为各位一些帮助 ...

  4. MongoDB学习笔记系列~目录

    MongoDB学习笔记~环境搭建 (2015-03-30 10:34) MongoDB学习笔记~MongoDBRepository仓储的实现 (2015-04-08 12:00) MongoDB学习笔 ...

  5. MongoDB学习笔记:快速入门

    MongoDB学习笔记:快速入门   一.MongoDB 简介 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能.M ...

  6. 孤荷凌寒自学python第五十五天初识MongoDb数据库

    孤荷凌寒自学python第五十五天第一天初识MongoDb数据库 (完整学习过程屏幕记录视频地址在文末) 大家好,2019年新年快乐! 本来我想的是借新年第一天开始,正式尝试学习爬虫,结果今天偶然发现 ...

  7. 孤荷凌寒自学python第六十二天学习mongoDB的基本操作并进行简单封装1

    孤荷凌寒自学python第六十二天学习mongoDB的基本操作并进行简单封装1 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第八天. 今天开始学习mongoDB的简单操作, ...

  8. MongoDB【第一篇】MongodDB初识

    NoSQL介绍 一.NoSQL简介 NoSQL,全称是”Not Only Sql”,指的是非关系型的数据库. 非关系型数据库主要有这些特点:非关系型的.分布式的.开源的.水平可扩展的. 原始的目的是为 ...

  9. 初识MongoDB

    1. 初识 接触MongoDB,是由于最近在工作中用到了MongoDB做数据存储.之前也听说过这个NoSQL数据库,但是一直没有尝试去使用它做开发.这次趁着这个机会,想好好学习下这个NoSQL数据库. ...

随机推荐

  1. string标准库的使用

    string s; s.empty() 如果 s 为空串,则返回 true,否则返回 false. s.size() 返回 s 中字符的个数 s[n] 返回 s 中位置为 n 的字符,位置从 开始计数 ...

  2. 【学习笔记】【oc】copy与mutableCopy

    copy 返回一个不可变的对象: mutableCopy 返回一个可变的对象: 使用copy方法时 类必须实现:<NSCopying>协议中的-(id)copyWithZone:(NSZo ...

  3. 黑马程序员——C语言开门片内存分析

    iOS培训,iOS学习---------型技术博客.期待与您交流!------------ 一.各种进制的总结 1.二进制 (1) 在c语言中二进制以0b开头,输出二进制格式没有固定的格式,自定义输出 ...

  4. Google地图

    Google地图开发总结 我们经常使用地图查位置.看公交.看街景,同时地图还开放第三方的API给开发者.利用这些API进行地图的个性化的展示和控制,例如北京被水淹了,开发一个网页显示北京被淹的地图,地 ...

  5. Mssql显错和不显错模式下的注入

    Title:Mssql显错和不显错模式下的注入 -- 2010-10-27 19:51 近期用手工注入用习惯了,便列出最近用的Mssql语句,以后方便拿来用! -------------------- ...

  6. win7 snmp

    http://blog.chinaunix.net/uid-21857285-id-3340206.html

  7. Xamarin.Forms-webservices访问

    虽然xamarin.android/ios 均支持右键添加web引用方式引用webservices,但是xamarin.forms不支持此方式,而如果android/ios各做一套采用抽象方式实现则工 ...

  8. 当分页语句遇到union all

    SELECT * FROM (SELECT pubformdat0_.id id332_, pubformdat0_.domain_id domain2_332_, pubformdat0_.proc ...

  9. HDU_2020——按绝对值排序

    Problem Description 输入n(n<=100)个整数,按照绝对值从大到小排序后输出.题目保证对于每一个测试实例,所有的数的绝对值都不相等.   Input 输入数据有多组,每组占 ...

  10. Github开源Java项目(Disconf)上传到Maven Central Repository方法详细介绍

    最近我做了一个开源项目 Disconf:Distributed Configuration Management Platform(分布式配置管理平台) ,简单来说,就是为所有业务平台系统管理配置文件 ...