看来你是无法在CouchDB中筑巢的数据库。人们如何解决这个限制?例如,假设我要创建每个域都有一个单独的数据库中的博客引擎。在每个数据库中,我可能希望一个用户数据库,订单数据库等以包含各种用户的文件,订货文件,等等。

明显的方法似乎是扁平结构,其中数据库名称标定数据库嵌套级之间的人工边界以连字符:

myblog.com-users
myblog.com-posts
myblog.com-comments
anotherblog.com-users
anotherblog.com-posts
anotherblog.com-comments
...hundreds more...

另一种解决办法是保持较低级别的数据库和与标记的顶层值每个文档:

用户含有数据库中的文档的用户1 ,具有字段的实例= “测试”或一个字段的域=“myblog.com “

有帮助吗?

解决方案

我觉得你在这里误用术语数据库。没有任何理由,你不能在用户,信息和评论数据存储在一个单一的CouchDB数据库。您的CouchDB视图可以分离出从帖子的文件,用户文件,从文件的意见。

用于在数据库的CouchDB用户文档示例地图功能:

function(doc) {
  if (doc.type = 'user') { // only return user documents
     emit([doc.domain, doc.id], doc); // the returned docs will be sorted by domain
  }
}

查看API的以该方式视图结果通过域中使用startkey和endkey与限制视图排序规则。

其他提示

我认为最好的解决方案是让每一个域数据库中,每个存储域的特定数据。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top