MongoDB 是最流行的NOSQL数据库,是一个面向文档的开源数据库。 nosql一词的意思是非关系。这意味着MongoDB不基于基于表格的关系数据库结构,但为数据的存储和检索提供了完全不同的机制。这种存储格式称为BSON(二进制编码的JavaScript符号)(类似于JSON格式)。
简单的mongodb文档结构:
{
title: 'Introduction to MongoDB',
by: 'Shivam Kumar',
url: 'https://www.google.com',
type: 'NoSQL'
}
SQL数据库以表格格式存储数据。该数据存储在一个预定义的数据模型中,该模型对于当今的现实世界高度增长的应用程序并不是很灵活。 现代应用程序比以往任何时候都更具网络,社交和互动性。应用程序正在存储越来越多的数据,并以较高的速率访问它。
关系数据库管理系统(RDBMS)i*不是根据其设计来处理大数据时的正确选择,因为它们不是水平可扩展的*。如果数据库在单个服务器上运行,则将达到缩放限制。 NOSQL数据库更可扩展,并提供出色的性能。 MongoDB是一个NOSQL数据库,通过添加越来越多的服务器并通过其灵活的文档模型提高生产率来扩展。
RDBMS vs MongoDB:
-
RDBMS具有典型的架构设计,该设计显示了许多表和这些表之间的关系,而MongoDB则以文档为导向。没有模式或关系的概念。
-
复杂的交易在MongoDB中不支持,因为复杂的联接操作不可用。
-
mongoDB允许高度灵活且可扩展的文档结构。例如,MongoDB中一个集合的一个数据文档可以具有两个字段,而同一集合中的另一个文档可以具有四个字段。
-
由于有效的索引和存储技术,MongoDB与RDBM相比要快。
-
两个数据库中都有一些相关的术语。在RDBMS中所谓的表被称为MongoDB中的集合。同样,元组也称为文档,列称为字段。 MongoDB提供了一个默认的_id(如果未明确提供),这是一个12字节十六进制的数字,可确保每个文档的唯一性。它类似于RDBMS中的主要键。
MongoDB的功能:
-
方向的文档:MongoDB存储了最小文档数量中的主要主题,而不是通过将其分解为RDBMS等多个关系结构。例如,它将计算机的所有信息存储在名为计算机的单个文档中,而不是在诸如CPU,RAM,硬盘等不同的关系结构中。
-
索引:如果不索引,数据库将不得不扫描集合的每个文档,以选择匹配效率低下的查询的文档。因此,对于有效的搜索索引是必须的,MongoDB使用它在很少的时间内处理大量数据。
-
可伸缩性:MongoDB使用碎片(在各种服务器上分区数据)水平缩放。数据使用碎片键将数据划分为数据块,这些数据块均匀分布在许多物理服务器中的碎片中。另外,可以将新机器添加到运行的数据库中。
-
复制和高可用性:mongoDB通过在不同服务器上的多个数据副本增加了数据可用性。通过提供冗余,它可以保护数据库免受硬件故障的影响。如果一台服务器下降,则可以从其他存储数据的其他活动服务器中轻松检索数据。
-
聚合:聚合操作处理数据记录并返回计算结果。它类似于SQL中的GroupBy子句。一些聚合表达式是总和,AVG,MIN,MAX等
我们在哪里使用MongoDB?
在以下情况下,mongoDB优于rdbms:
-
大数据:如果您有大量数据要存储在表中,请在RDBMS数据库之前考虑MongoDB。 MongoDB具有用于分区和碎片数据库的内置解决方案。
-
不稳定的架构:在RDBMS中添加新列很难,而MongoDB则不含模式。添加新字段不会影响旧文档,并且非常容易。
-
分布式数据由于多个数据副本都在不同的服务器上存储,即使存在硬件故障,数据的恢复也是即时且安全的。
MongoDB的语言支持:
MongoDB目前为C,C ++,Rust,C#,Java,Node.js,Perl,Perl,Php,Python,Python,Ruby,Scala,Go和Erlang提供官方驾驶员支持。
。安装mongoDB:
只需前往http://www.mongodb.org/downloads,然后从Windows,Linux,Mac OS X和Solaris中选择您的操作系统。关于MongoDB安装的详细说明。
对于Windows,64位操作系统的一些选项下降。当您在Windows 7、8或更新版本上运行时,选择 Windows 64位2008 R2+。当您使用Windows XP或Vista时,请选择 Windows 64位2008 R2+ Legacy 。
谁使用mongodb?
MongoDB已被许多主要网站和服务采用,包括EA,Cisco,Shutterfly,Adobe,Adobe,Ericsson,Craigslist,Craigslist,eBay和Foursquare。