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. 图片输出onerror事件

    <img src=".<?php echo $img[0];?>" onerror="this.src='img/zanwu.jpg'" st ...

  2. easyui最小化后停留在页面的右下角

    0.此方法没有什么技术含量,纯属于自己瞎想的!如果有的好方法,请留言告之谢谢!! 1.直接上代码: $('#winId').window({ onMinimize: function () { //最 ...

  3. 测试Beetle.Redis+Web Api

    在Web Api里用Beetle.Redis调用Redis服务端的TIME命令返回一个json格式,然后客户端是用的HttpTest4Net做的测试: CPU:I7-3770 内存:4G+4G 硬盘: ...

  4. c#使用spy进行模拟操作

    很无奈,写了很长时间,最后保存时网页失去响应,真是要命呢.本来想就此放弃了,但是想还是粗略的重写一次吧,希望日后可以对朋友有一定的帮助. Microsoft.Spy工具是一个基础工具,我们简要介绍一下 ...

  5. Altium Designer 等长线&&蛇形线

    Altium Designer 里面怎么画等长线 (1)一般是将走线布完后,新建一个class. Design -> Classes 如上图添加完后可以点击close. (2)快捷键 T + R ...

  6. Boost编程之获取可执行文件的当前路径

    #include <boost/filesystem/path.hpp> #include <boost/filesystem/operations.hpp> std::str ...

  7. HDU_2022——海选女主角

    Problem Description potato老师虽然很喜欢教书,但是迫于生活压力,不得不想办法在业余时间挣点外快以养家糊口.“做什么比较挣钱呢?筛沙子没力气,看大门又不够帅...”potato ...

  8. Design Tic-Tac-Toe 解答

    Question Design a Tic-tac-toe game that is played between two players on a n x n grid. You may assum ...

  9. openStack 手动部署文档

    1, 规划配置网络

  10. socket实例1

    第一个例子创建了一个java工程,用来测试Socket的连接功能,通过浏览器可访问,地址为:127.0.0.1:端口号 MyServerSocket.java, package com.jikexue ...