3

MongoDb 被称为文档数据库,而不是键值数据存储。但是 mongodb文档

例子:

{ "item": "pencil", "qty": 500, "type": "no.2" }

这看起来完全像键值对的集合。那么文档数据库和键值对数据库之间是否存在根本区别

4

3 回答 3

5

这些定义不是排他性的。

“键值数据库”定义了要检索的数据的“值”部分可以通过查询数据库的“键”直接访问,而不是定义数据库模式并使用 SQL 语法查询数据库。“值”可以是任何东西,一个简单的字符串、一个编程语言对象、一个 HTML 页面......

文档数据库更多地说明了键值对的“值”部分:检索到的数据以某种标准的、可移植的格式编码,如 JSON 或 XML。这为数据库提供了一些结构,但远没有传统数据库那么严格,其中每一行都必须符合定义的模式。

因此,为了回答您的问题,MongoDB 是一个使用“键值”机制来检索数据的数据库,其“值”是一个文档(由基于文档的数据库的定义松散地定义)。

考虑到 NoSQL 的“定义”有点重叠并且非常松散。

于 2013-10-09T21:25:28.330 回答
0

在最近一次对 MongoDB 架构师的采访中,他们对我的开场白是“MongoDB 基本上是一个键值数据存储”。所以,是的,它是键及其值的集合。它更多,但就是这样。

于 2014-01-14T21:49:59.567 回答
0

一个更容易区分的方法是查看 Memcached 和 MongoDB。Memcached 只是一个简单的键值存储,但 MongoDB 包含更丰富的数据结构,您可以在其中存储 Arrays、Dict 并非常轻松地查询它们。

于 2013-10-09T21:38:26.650 回答