文档数据库和键值对之间的区别

时间:2013-10-09 20:55:22

标签: mongodb nosql

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

的示例:

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

这看起来就像一组键值对。那么文档数据库和键值对数据库之间是否存在根本区别

3 个答案:

答案 0 :(得分:4)

这些定义并不是唯一的。

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

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

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

考虑到NoSQL“定义”有点重叠且相当松散。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

在最近接受MongoDB架构师采访时,他们给我的开场白是“MongoDB基本上是一个关键:价值数据存储。”所以,是的,它是一组键及其值。它更多但是就是这样。