MongoDB】什么是MongoDB?他的优势是什么?

2021-05-07 16:50发布

6条回答
哈哈哈哈哈哈嗝
1楼 · 2021-05-08 09:59.采纳回答

1. 文档存储
数据存储以BSON/JSON文档,这对于Web应用程序有很大的意义。开发者API喜欢以JSON形式传输,这使得整个项目的数据表示可采用统一的模型。所有这一切都无需任何前期架构设计。

2. 可扩展性
MongoDB被用在一些规模庞大的环境中,FourSquare/Craiglist都在使用它。通过分片数据缩放处理理论上可实现更高的吞吐量。

3. 简单的复制
就像分片技术一样,MongoDB范围内复制过程同样简单好用,在副本机器上还有大量的复制选项。灵活的功能可满足用户应用的需求。

4. 易于查询
MongoDB以文档的形式存储数据,不支持事务和表连接。因此查询的编写、理解和优化都容易得多。简单查询设计思路不同于SQL模式,嵌入文档在特定的环境下可得到更好的查询,然而这需要先加入集合。如果需要执行多个请求到数据库则需要加入其到客户端。在MongoDB时ODM工具(如Doctrine2)将发挥自身的优势。

kitidog2016
2楼 · 2021-05-07 16:58

(1)文档
文档是 MongoDB 中数据的基本单位,类似于关系数据库中的行(但是比行复杂)。多个键及其关联的值有序地放在一起就构成了文档。不同的编程语言对文档的表示方法不同,在JavaScript 中文档表示为:
{“greeting”:“hello,world”}
这个文档只有一个键“greeting”,对应的值为“hello,world”。多数情况下,文档比这个更复杂,它包含多个键/值对。例如:
{“greeting”:“hello,world”,“foo”: 3}
文档中的键/值对是有序的,下面的文档与上面的文档是完全不同的两个文档。
{“foo”: 3 ,“greeting”:“hello,world”}
文档中的值不仅可以是双引号中的字符串,也可以是其他的数据类型,例如,整型、布尔型等,也可以是另外一个文档,即文档可以嵌套。文档中的键类型只能是字符串。
(2)集合
集合就是一组文档,类似于关系数据库中的表。集合是无模式的,集合中的文档可以是各式各样的。例如,{“hello,word”:“Mike”}和{“foo”: 3},它们的键不同,值的类型也不同,但是它们可以存放在同一个集合中,也就是不同模式的文档都可以放在同一个集合中。既然集合中可以存放任何类型的文档,那么为什么还需要使用多个集合?这是因为所有文档都放在同一个集合中,无论对于开发者还是管理员,都很难对集合进行管理,而且这种情形下,对集合的查询等操作效率都不高。所以在实际使用中,往往将文档分类存放在不同的集合中,例如,对于网站的日志记录,可以根据日志的级别进行存储,Info级别日志存放在Info 集合中,Debug 级别日志存放在Debug 集合中,这样既方便了管理,也提供了查询性能。但是需要注意的是,这种对文档进行划分来分别存储并不是MongoDB 的强制要求,用户可以灵活选择。
可以使用“.”按照命名空间将集合划分为子集合。例如,对于一个博客系统,可能包括blog.user 和blog.article 两个子集合,这样划分只是让组织结构更好一些,blog 集合和blog.user、blog.article 没有任何关系。虽然子集合没有任何特殊的地方,但是使用子集合组织数据结构清晰,这也是MongoDB 推荐的方法。
(3)数据库
MongoDB 中多个文档组成集合,多个集合组成数据库。一个MongoDB 实例可以承载多个数据库。它们之间可以看作相互独立,每个数据库都有独立的权限控制。在磁盘上,不同的数据库存放在不同的文件中。MongoDB 中存在以下系统数据库。
● Admin 数据库:一个权限数据库,如果创建用户的时候将该用户添加到admin 数据库中,那么该用户就自动继承了所有数据库的权限。
● Local 数据库:这个数据库永远不会被负责,可以用来存储本地单台服务器的任意集合。
● Config 数据库:当MongoDB 使用分片模式时,config 数据库在内部使用,用于保存分片的信息。


大冬瓜
3楼 · 2021-05-08 14:22

MongoDB 的名称取自英文单词“ humongous ” ( 巨大的 ) 的中间部分 。它是10gen公司开发的一款以高性能和可扩展性为特征的开源软件,它是NoSQL中面向文档的数据库,由C++语言编写。它是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

MongoDB历史:
2007年10月,MongoDB由10gen团队所发展。2009年2月首度推出。
2012年05月23日,MongoDB2.1 开发分支发布了! 该版本采用全新架构,包含诸多增强。
2012年06月06日,MongoDB 2.0.6 发布,分布式文档数据库。
2013年04月23日,MongoDB 2.4.3 发布,此版本包括了一些性能优化,功能增强以及bug修复。
2013年08月20日,MongoDB 2.4.6 发布,是目前最新的稳定版。


Mongodb的优势:
无表结构
容易扩展
丰富的功能
性能卓越
简便的管理

Mongodb的不足:
不支持JOIN查询和事物处理。

适用场景:

    —适合作为信息基础设施的持久化缓存层 。

    —适合实时的插入,更新与查询,并具备应用程序实时数据存储所需的复制及高度伸缩性。

    — MongoDB的BSON数据格式非常适合文档化格式的存储及查询。


不适用场景:

    —要求高度事务性的系统。

    —传统的商业智能应用。

    —复杂的跨文档 ( 表 ) 级联查询。


梵梵
4楼 · 2021-05-09 20:27

MongoDB 的名称取自英文单词“ humongous ” ( 巨大的 ) 的中间部分 。它是10gen公司开发的一款以高性能和可扩展性为特征的开源软件,它是NoSQL中面向文档的数据库,由C++语言编写。

嘿呦嘿呦拔萝卜
5楼 · 2021-05-21 14:54

文档是 MongoDB 中数据的基本单位,类似于关系数据库中的行(但是比行复杂)。多个键及其关联的值有序地放在一起就构成了文档。不同的编程语言对文档的表示方法不同,在JavaScript 中文档表示为:
{“greeting”:“hello,world”}
这个文档只有一个键“greeting”,对应的值为“hello,world”。多数情况下,文档比这个更复杂,它包含多个键/值对。例如:
{“greeting”:“hello,world”,“foo”: 3}
文档中的键/值对是有序的,下面的文档与上面的文档是完全不同的两个文档。
{“foo”: 3 ,“greeting”:“hello,world”}
文档中的值不仅可以是双引号中的字符串,也可以是其他的数据类型,例如,整型、布尔型等,也可以是另外一个文档,即文档可以嵌套。文档中的键类型只能是字符串。

我的网名不再改
6楼 · 2021-09-02 14:04

 MongoDB 的名称取自英文单词“ humongous ” ( 巨大的 ) 的中间部分 。它是10gen公司开发的一款以高性能和可扩展性为特征的开源软件,它是NoSQL中面向文档的数据库,由C++语言编写。它是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

MongoDB历史:
2007年10月,MongoDB由10gen团队所发展。2009年2月首度推出。
2012年05月23日,MongoDB2.1 开发分支发布了! 该版本采用全新架构,包含诸多增强。
2012年06月06日,MongoDB 2.0.6 发布,分布式文档数据库。
2013年04月23日,MongoDB 2.4.3 发布,此版本包括了一些性能优化,功能增强以及bug修复。
2013年08月20日,MongoDB 2.4.6 发布,是目前最新的稳定版。


Mongodb的优势:
无表结构
容易扩展
丰富的功能
性能卓越
简便的管理

Mongodb的不足:
不支持JOIN查询和事物处理。

适用场景:

    —适合作为信息基础设施的持久化缓存层 。

    —适合实时的插入,更新与查询,并具备应用程序实时数据存储所需的复制及高度伸缩性。

    — MongoDB的BSON数据格式非常适合文档化格式的存储及查询。


不适用场景:

    —要求高度事务性的系统。

    —传统的商业智能应用。

    —复杂的跨文档 ( 表 ) 级联查询。

可以在mongodb官网下载安装包,地址为:http://www.mongodb.org/downloads, MongoDB支持以下平台:
Mac OS X 32-bit
Mac OS X 64-bit
Linux 32-bit
Linux 64-bit
Windows 32-bit
Windows 64-bit
Solaris i86pc
Solaris 64


相关问题推荐

    没有解决我的问题,去提问