我想构建一个应用程序,为应用程序的每个用户创建一个新的_view。我想知道规模。一百万用户(我们应该如此幸运)在一个设计文档中有一长串观点仍然可以发挥作用吗?
更新: 我想要完成的事情
我有三种类型的文档可以放在我的数据库中:描述项目的文档,描述用户的文档以及描述操作的文档。每个操作都属于一个且仅一个用户,并且只属于一个项目。我将为用户,他们的个人资料页面和项目视图提供视图(HTML视图)。所以,我希望能够在一个请求中获取所有给定用户的操作(也许是couchdb _view)。我也希望能够在一个请求中获取项目所采取的所有操作(也许是另一个couchdb _view ...)。
更新2:)
因此用户可能会更新他们的个人资料,调整用户文档,项目负责人可能会更新项目信息,更改数据库中的项目文档。行动是永久性的,只发生一次,因此没有冲突。
答案 0 :(得分:2)
这只需要两个CouchDB视图:一个用户索引操作,一个用项目索引操作。假设您有一个如下所示的操作文档:
{
"type": "action",
"project": "someProjectID",
"user": "someUserID"
}
您可以使用以下地图功能编写视图:
function(doc) {
if (doc.type == "action") {
emit(doc.project, null);
}
}
使用include_docs=true
和key=someProjectId
查询视图将返回给定项目的所有操作。