首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于文档的数据库和基于键/值的数据库之间的区别?

问基于文档的数据库和基于键/值的数据库之间的区别?
EN

Stack Overflow用户
提问于 2010-08-24 15:07:10
回答 2查看 56.1K关注 0票数 105

我知道有三种不同的、流行的非sql数据库类型。

Cassandra密钥/值:,东京

  • ,
    • ,Redis MongoDB,CouchDB

我读过很多关于它的博客,对此并没有太多的理解。

我了解关系数据库,并且熟悉基于文档的数据库,比如MongoDB/CouchDB。

谁能告诉我这两个列表和前两个的主要区别是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-08-24 15:24:18

主要区别在于数据模型和查询功能。

键值存储

第一种类型非常简单,可能不需要任何进一步的解释。

数据模型:不仅仅是键值存储

尽管Cassandra等数据库的正确名称上有some debate,但我还是希望将它们称为列系列存储。尽管键值对是Cassandra的重要组成部分,但它并不仅限于此。它允许嵌套键值对,因此一个键可以引用多个子键值对。

但是,您不能无限嵌套键值对。只能嵌套三个级别(柱族)或四个级别(超级柱族)。如果列族这个术语不太熟悉,请参阅WTF is a SuperColumn文章,它很好地解释了卡桑德拉的数据模型。

文档数据库,如CouchDB和MongoDB,以JSON objects的形式存储整个文档。您可以将这些对象视为嵌套的键值对。与Cassandra不同,您可以根据需要嵌套多个键值对。JSON还支持数组并理解不同的数据类型,例如字符串、数字和布尔值。

查询中

我相信列族存储只能通过键查询,或者通过编写map-reduce函数来查询。您不能像在SQL数据库中那样查询值。如果应用程序需要更复杂的查询,则应用程序必须创建和维护索引才能访问所需的数据。

文档数据库还支持按键查询和map-reduce函数,但也允许您按值执行基本查询,例如“给我所有超过10个帖子的用户”。文档数据库在这种方式上更加灵活。

票数 78
EN

Stack Overflow用户

发布于 2014-09-08 10:23:19

关于键值和文档数据库之间的区别,Ayende做了很好的解释:

文档数据库的核心是键/值存储,但有一个主要的例外。a document db要求数据以数据库可以理解的格式存储(即JSON、XML等),而不是简单地将任何blob存储在其中。在大多数文档数据库中,这意味着我们现在可以在文档数据上允许查询。

票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3554169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档