为此,我只需使用users 字段上键入的视图:
function (doc) {
doc.users.forEach(function (user) {
emit([ user ]);
});
}
在这种情况下,我发出了一个只有 1 个项目的数组。我认为您还会发出类似 doc.created 的内容以便对文章进行排序,您只需在该数组中的 user 之后添加它们即可。
查看结果如下所示:
{
"rows": [
{ "id": "<article-1>", "key": [ "<user-1>", "<created>" ] },
{ "id": "<article-2>", "key": [ "<user-1>", "<created>" ] },
{ "id": "<article-3>", "key": [ "<user-1>", "<created>" ] },
{ "id": "<article-1>", "key": [ "<user-2>", "<created>" ] },
{ "id": "<article-1>", "key": [ "<user-3>", "<created>" ] }
]
}
您可以像通常使用 CouchDB 一样简单地进行分页。您只需使用start_key=["<user-1>"]&end_key=["<user-1>","\ufff0"] 以及通常的分页limit=10&skip=0 用于第1 页,limit=10&skip=10 用于第2 页等。