zoukankan      html  css  js  c++  java
  • MongoDB自学笔记2---1.2 初识MongoDB

    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公司提供支持。

  • 相关阅读:
    SpringBoot引入spring-boot-starter-security后无法接收前端请求
    虚拟机IP地址不断改变的解决办法
    加密
    Golang设计模式学习笔记--建造者模式
    goland快捷键
    使用webhook实现博客网站自动化部署
    hugo + nginx 搭建博客记录
    Maven打包方式(多模块)
    如何抑制SettingWithCopyWarning
    时间复杂度分析--公式法
  • 原文地址:https://www.cnblogs.com/aukle/p/3230781.html
Copyright © 2011-2022 走看看