MongoDb称为文档数据库,而不是键值数据存储。但是mongodb docs
的示例:
{ "item": "pencil", "qty": 500, "type": "no.2" }
这看起来就像一组键值对。那么文档数据库和键值对数据库之间是否存在根本区别
答案 0 :(得分:4)
这些定义并不是唯一的。
“键值数据库”定义要检索的数据的“值”部分可以通过查询数据库的“密钥”直接访问,而不是定义数据库模式和使用SQL语法查询数据库。 “值”可以是任何东西,简单的字符串,编程语言对象,HTML页面......
文档数据库更多地介绍了键值对的“值”部分:检索到的数据以某种标准的可移植格式编码,如JSON或XML。 这为数据库提供了一些结构,但远不如传统数据库那样严格,每个行都必须符合定义的模式。
因此,回答你的问题,MongoDB是一个使用“键 - 值”机制来检索数据的数据库,其“值”是一个文档(由基于文档的数据库的定义松散定义)。 p>
考虑到NoSQL“定义”有点重叠且相当松散。
答案 1 :(得分:0)
更容易区分的方法是查看Memcached和MongoDB。 Memcached只是一个键值存储,但MongoDB包含更丰富的数据结构,您可以在其中存储Arrays,Dict并轻松查询它们。
答案 2 :(得分:0)
在最近接受MongoDB架构师采访时,他们给我的开场白是“MongoDB基本上是一个关键:价值数据存储。”所以,是的,它是一组键及其值。它更多但是就是这样。