CouchDB和Couchbase文档密钥

时间:2014-05-29 20:59:48

标签: couchdb couchbase

在CouchDB和Couchbase的参考资料中,将文档的type存储为实际文档中的参数是常用指南。

我有一个数据库,我有不同的文档,通过URL记录某些行为。很自然地,我使用URL作为文档的id。

我发现的问题是,通过仅使用密钥作为文档ID,我现在可以在不同类型的文档之间发生冲突。所以我开始使用类型作为键的第一部分,如下所示:

 { doc._id: "rss_entry|http://www.spiegel.de/1234", [...] }
 { doc._id: "page_text|http://www.spiegel.de/1234", [...] }

现在我开始想知道为什么我从未在任何文档中看到过这种模型类型的方法。

1 个答案:

答案 0 :(得分:3)

通常使用前缀。除了支持您的场景之外,前缀还允许对视图执行逻辑范围查询。在建模示例中使用了这种技术,但是这个概念可能没有像您期望的那样详细描述。在http://docs.couchbase.com/couchbase-devguide-2.5/#modeling-documents部分中,文档被标记为beer_NNNN和brewery_NNNN。此外,http://docs.couchbase.com/couchbase-devguide-2.5/#using-reference-documents-for-lookups部分更深入地介绍了这种技术。有一个名为user :: count的计数器文档,然后每个用户都被键入为user :: NNNN。此外,示例中的文档被键入为fb :: NNNN用于Facebook ID,email :: XXX@YYYY.com用于用户的电子邮件地址等。