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