`

初识MongoDB

 
阅读更多

MongoDB是什么

MongoDB的名字源自一个形容词humongous(巨大无比的),使用C++开发,是一个高性能(high-performance),可扩展(scalable),开源(open source)的文档型存储(document-Oriented Storage)的NoSQL数据库,它扩展了关系型数据库的众多功能,如辅助索引,范围查询和排序, MongoDB的功能非常丰富,比如内置的对MapReduce式聚合的支持,以及对地理空间索引的支持。

 

MongoDB的关键特性有哪些

1.丰富的数据类型

[1].MongoDB是面向文档的数据库, 不是关系型数据库, 放弃关系型数据库的主要原因是为了获取更加方便的扩展性, 基本思路就是将原来的行的换成了更加灵活的“文档”(document)模型,面向文档的方式可以将文档或数组内嵌起来,所以一条记录就可以表示非常复杂的层次关系, 使用面向对象语言的开发者恰恰这么看待数据, 所以非常自然。

 

[2].MongoDB没有模式,文档的键不会事先定义也不会固定不变, 由于没有模式需要更改,通常不需要迁移大量数据,不必将所有数据都放到一个模子里面, 应用层可以出来新增或丢失的键,这样开发者可以非常容易的更改数据类型。

 

2.容易扩展

[1].MongoDB从最初设计时就考虑了扩展问题, 它所采用的面向文档的数据模型使其可以自动在多台服务器之间分割数据, 它还可以平衡集群的数据和负载,自动重排文档, 这样开发者就可以专注于编写应用, 而不是考虑如何扩展,要是需要更大得容量, 只需在集群中添加新机器即可。

 

3.丰富的功能

[1].索引

  • MongoDB支持通用辅助索引, 能进行多种快速查询, 能提供唯一的,复合和地理空间索引能力。

[2].存储JavaScript

  • 开发人员不必使用存储过程了, 可以直接在服务器端存储javascript的函数和值了

[3].聚合

  • MongoDB支持MapReduce和其他聚合工具。

[4].固定集合

  • 集合的大小是有上限的,这对某些类型的数据(比如日志)特别有用。

[5].文件存储

  • MongoDB支持用一种容易使用的协议存储大型文件和文件的元数据。

4.不牺牲速度

  • 卓越的性能是MongoDB的主要目标, 也极大的影响了设计上的很多决定, MongoDB使用MongoDB传输协议作为与服务器交互的主要方式(与之对应的协议需要更多的开销,比如http/rest),它对文档进行动态填充, 预分配数据文件,用空间换取性能的稳定, 默认的存储引擎使用了内存映射文件, 将内存管理工作交给操作系统去完成, 动态查询优化器会“记住”执行查询的最高效的方式。

MongoDB的使用场景是什么

  • [1].Mongo非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。
  • [2].缓存:由于性能很高,Mongo也适合作为信息基础设施的缓存层。在系统重启之后,由Mongo搭建的持久化缓存层可以避免下层的数据源 过载。
  • [3].大尺寸,低价值的数据:使用传统的关系型数据库存储一些数据时可能会比较昂贵,在此之前,很多时候程序员往往会选择传统的文件进行存储。
  • [4].高伸缩性的场景:Mongo非常适合由数十或数百台服务器组成的数据库。Mongo的路线图中已经包含对MapReduce引擎的内置支持。
  • [5].用于对象及JSON数据的存储:Mongo的BSON数据格式非常适合文档化格式的存储及查询。
分享到:
评论

相关推荐

    Educoder的实训项目MongoDB代码.TXT

    Educoder实训项目MongoDB类项目的全部代码,项目发布人是国防科技大学的,亲测一个个通过

    MongoDB课件ppt大全1-12章节

    第1章 初识MongoDB.pptx 第2章 MongoDB的结构.pptx 第3章 MongoDB基本操作.pptx 第4章 数据外部管理工具.pptx 第5章 监控.pptx 第6章 安全和访问控制.pptx 第7章 数据管理.pptx 第8章 MongoDB 驱动.pptx 第9章 ...

    MongoDB入门学习

    ### MongoDB入门学习知识点详解 #### 一、MongoDB简介与特点 MongoDB是一款非常流行的开源文档型NoSQL数据库系统,采用C++语言实现,具备高度的可扩展性和高性能。它适用于处理大规模的数据集,并提供了丰富的功能...

    深入云计算 MongoDB管理与开发实战详解pdf.part1

    1.5 初识MongoDB 1.5.1 MongoDB的特点 1.5.2 数据模型 1.5.3 扩展性 1.5.4 功能性 1.5.5 速度快 1.5.6 简便的管理 1.5.7 使用场合 1.6 本章小结 第2章 MongoDB基本原理与安装 2.1 数据库...

    mongodb自学手册

    #### 1.2 初识MongoDB **1.2.1 MongoDB简介** MongoDB是一款开源的文档型数据库,支持JSON格式的文档存储,提供了丰富的查询语言,以及高可用性和可伸缩性。它的设计目标是简化数据存储,并为现代应用程序提供高...

    深入云计算 MongoDB管理与开发实战详解pdf.part2

    1.5 初识MongoDB 1.5.1 MongoDB的特点 1.5.2 数据模型 1.5.3 扩展性 1.5.4 功能性 1.5.5 速度快 1.5.6 简便的管理 1.5.7 使用场合 1.6 本章小结 第2章 MongoDB基本原理与安装 2.1 数据库...

    MongoDB管理与开发精要《红丸出品》

    **1.2 初识MongoDB** - **MongoDB**是一种开源的文档型NoSQL数据库,以其灵活的数据模型、强大的查询语言和易于使用的特性而闻名。 - **特点**:MongoDB具有自动分片、副本集、丰富的查询语言、易于扩展和集成等...

    MongoDB_权威指南_中文版(补充完整目录导航)

    #### 1.2 初识MongoDB - **特点**:说明MongoDB作为NoSQL数据库的文档型数据库的特点,包括它的存储结构、查询语言、索引等。 - **功能**:列举MongoDB的核心功能,例如数据持久化、复制、分片、索引、聚合框架等。 ...

    MongoDB中文教程

    **1.2 初识MongoDB** - **特点**: - 文档型数据库,以BSON(Binary JSON)格式存储数据。 - 自动分片,支持水平扩展。 - 内置复制机制,提供高可用性。 - **功能**: - 高性能读写操作。 - 复杂查询支持,包括...

    MongoDB初识

    MongoDB入门资料,其中包括简介,语法,关键字等等。它是一种文档导向数据库管理系统,是基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。 其旨在为web应用提供可扩展...

    MongoDB数据库介绍及安装

    7. **02-初识增删改.pptx**可能涉及: - 插入数据:`db.collection.insertOne()`或`db.collection.insertMany()`插入单个或多个文档。 - 更新数据:`db.collection.updateOne()`或`db.collection.updateMany()`...

Global site tag (gtag.js) - Google Analytics