MongoDB是最受欢迎的NoSQL数据库,是一个面向开源文档的数据库。“NoSQL”一词的意思是“非关系型”。这意味着MongoDB不是基于类似表的关系数据库结构,而是提供了一种完全不同的数据存储和检索机制。这种存储格式称为BSON(类似于JSON格式)。

一个简单的MongoDB文档结构:

{

标题:'Geeksforgeeks',

通过:'Harshit Gupta',

类型:'NoSQL'

}

MongoDB:简介-IDC帮帮忙

SQL数据库以表格格式存储数据。这些数据存储在预定义的数据模型中,该模型对于当今真实世界的高增长应用程序而言并不是非常灵活。现代应用程序比以往更加网络化,社交化和交互式。应用程序正在存储越来越多的数据,并以更高的速率访问它。

关系数据库管理系统(RDBMS)在处理大数据时,由于它们不能横向扩展,因此不是正确的选择。如果数据库在单个服务器上运行,那么它将达到扩展限制。NoSQL数据库更具可扩展性并提供卓越的性能。MongoDB是一个NoSQL数据库,通过添加越来越多的服务器来扩展,并通过其灵活的文档模型提高生产力。

RDBMS与MongoDB:

RDBMS有一个典型的模式设计,它显示了表的数量和这些表之间的关系,而MongoDB是面向文档的。没有架构或关系的概念。
MongoDB不支持复杂事务,因为复杂的连接操作不可用。
MongoDB允许高度灵活和可扩展的文档结构。例如,MongoDB中集合的一个数据文档可以有两个字段,而同一集合中的另一个文档可以有四个。
由于高效的索引和存储技术,MongoDB与RDBMS相比更快。
在两个数据库中都有一些相关的术语。RDBMS中所谓的Table在MongoDB中称为Collection。类似地,Tuple称为Document,A Column称为Field。MongoDB提供了一个默认的'_id'(如果没有明确提供),这是一个12字节的十六进制数字,它确保了每个文档的唯一性。它类似于RDBMS中的主键。
MongoDB的特点:

面向文档:MongoDB将主要主题存储在最少数量的文档中,而不是将其分解为多个关系结构,如RDBMS。例如,它将计算机的所有信息存储在名为Computer的单个文档中,而不是存储在CPU,RAM,硬盘等不同的关系结构中。
索引:如果没有索引,数据库就必须扫描集合中的每个文档,以选择与查询匹配的效率低下的文档。因此,为了有效搜索,索引是必须的,MongoDB使用它来在很短的时间内处理大量数据。
可伸缩性:MongoDB使用分片(跨各种服务器分区数据)进行水平扩展。使用分片键将数据分区为数据块,并且这些数据块均匀分布在跨多个物理服务器的分片中。此外,可以将新计算机添加到正在运行的数据库中。
复制和高可用性:MongoDB通过在不同服务器上提供多个数据副本来提高数据可用性。通过提供冗余,它可以保护数据库免受硬件故障。如果一台服务器出现故障,可以从其他活动服务器轻松检索数据,这些服务器也存储了数据。
聚合:聚合操作处理数据记录并返回计算结果。它类似于SQL中的GROUPBY子句。一些聚合表达式是sum,avg,min,max等
我们在哪里使用MongoDB?

在以下情况下,MongoDB优先于RDBMS:

大数据:如果要将大量数据存储在表中,请在RDBMS数据库之前考虑MongoDB。MongoDB内置了分区和分片数据库的解决方案。
不稳定的架构:在RDBMS中添加新列很难,而MongoDB是无架构的。添加新字段不会影响旧文档,并且非常容易。
分布式数据由于多个数据副本存储在不同的服务器上,即使出现硬件故障,数据恢复也是即时且安全的。
MongoDB的语言支持:

MongoDB目前为所有流行的编程语言提供官方驱动程序支持,如C,C ++,C#,Java,Node.js,Perl,PHP,Python,Ruby,Scala,Go和Erlang。

我安装了MongoDB:

对于Windows,64位操作系统的一些选项会下降。当您在Windows 7,8或更高版本上运行时,请选择Windows 64位2008 R2 +。当您使用Windows XP或Vista时,请选择Windows 64位2008 R2 +旧版。

谁在使用MongoDB?

MongoDB已被许多主要网站和服务用作后端软件,包括EA,Cisco,Shutterfly,Adobe,Ericsson,Craigslist,eBay和Foursquare。