CouchDB和Couchbase文档密钥

CouchDB和Couchbase文档密钥,couchdb,couchbase,Couchdb,Couchbase,在CouchDB和Couchbase的参考资料中,常见的指导原则是将文档的类型存储为实际文档中的参数 我有一个数据库,在那里我有不同的文档,通过URL记录某些行为。因此,很自然地,我使用URL作为文档的id 我发现的问题是,仅使用键作为文档id,现在不同类型的文档之间会发生冲突。因此,我开始使用类型作为键的第一部分,如下所示: { doc._id: "rss_entry|http://www.spiegel.de/1234", [...] } { doc._id: "page_text|ht

在CouchDB和Couchbase的参考资料中,常见的指导原则是将文档的
类型
存储为实际文档中的参数

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

我发现的问题是,仅使用键作为文档id,现在不同类型的文档之间会发生冲突。因此,我开始使用类型作为键的第一部分,如下所示:

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

现在我开始纳闷,为什么我从来没有在任何文档中见过这种模型类型的方法。

前缀是常用的。除了支持像您这样的场景外,前缀还允许对视图执行逻辑范围查询。在建模示例中使用了这种技术,但是可能没有像您所期望的那样详细地描述这个概念。在本节中,文档的关键字为beer\u NNNN和BRUERY\u NNNN。此外,本节还将更深入地介绍这种技术。有一个名为user::count的计数器文档,然后将每个用户键入为user::NNNN。此外,示例中还有一些文档键入为fb::NNNN,用于Facebook ID,email::XXX@YYYY.com有关用户的电子邮件地址等信息。

谢谢,我刚才确实阅读了brewery示例,但没有意识到这一点。所以我想知道我是否遗漏了一个问题。读一下为什么使用::(双冒号)作为分隔符可能会很有趣