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

Vic*_*tor 5 mongodb nosql

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

例子:

{ "item": "pencil", "qty": 500, "type": "no.2" }
Run Code Online (Sandbox Code Playgroud)

这看起来就像是键值对的集合。那么文档数据库和键值对数据库有本质区别吗

vin*_*aut 5

这些定义不是排他性的。

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

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

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

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