CouchDB中的异构数据存储

CouchDB中的异构数据存储,couchdb,data-modeling,Couchdb,Data Modeling,我想知道在CouchDB中存储异构数据的最佳实践是什么。在MongoDB中,您可以使用集合来帮助数据建模(即:典型用法是每个集合使用一种文档类型)。在CouchDB中处理此类需求的最佳方法是什么?使用_类型字段标记文档?或者还有其他我不知道的方法吗?Mongo集合的主要好处是每个集合定义和计算索引。在沙发的情况下,你有更多的自由和灵活性来做这件事。每个索引都是以map/reduce的方式由视图定义的。您可以通过在map函数中过滤数据来限制数据以计算索引。由于这种灵活性,如何区分哪个文档属于哪个视

我想知道在CouchDB中存储异构数据的最佳实践是什么。在MongoDB中,您可以使用集合来帮助数据建模(即:典型用法是每个集合使用一种文档类型)。在CouchDB中处理此类需求的最佳方法是什么?使用_类型字段标记文档?或者还有其他我不知道的方法吗?

Mongo集合的主要好处是每个集合定义和计算索引。在沙发的情况下,你有更多的自由和灵活性来做这件事。每个索引都是以map/reduce的方式由视图定义的。您可以通过在map函数中过滤数据来限制数据以计算索引。由于这种灵活性,如何区分哪个文档属于哪个视图取决于您


如果您真的喜欢固定的Mongo风格,将文档划分为一组具有单独索引的不同分区,只需创建字段
集合
,而不要在单个视图中混合使用两个不同的集合。在我看来,拒绝Coach over Mongo(Mougo通常是功能更强大、更灵活的系统)的唯一好处之一似乎不是个好主意。

要在CouchDb中获得“收集”行为,我认为最“常见”的方法是包含一个“元数据”字段,指示文档所代表的类型。然后可以在
映射
函数中使用。这就是我使用MyCuch的方式,MyCuch是.Net的一个库。使用
$doctype
作为字段名。我想您还可以为
\u id
字段提供一个带有前缀的算法。认为第一种选择更干净、更容易使用。这似乎是一种有效的方法。你也有一个例子,那就是“书”。在那里,他们使用“类型”,我不确定我是否同意沙发胜过Mongo的唯一好处是灵活性。其他一些好处包括数据库集成、主机复制和_更改事件。