我在couchDb中有一个像这样定义的视图
function (doc) {
if (doc.url) {
var a = new Date(doc.postedOn);
emit([a.toLocaleDateString(), doc.count, doc.userId], {
_id: doc.userId,
postTitle: doc.postTitle,
postSummary: doc.postSummary,
url: doc.url,
count: doc.count
});
}
};
这给了我一个我想要的格式的结果。首先按日期然后按计数再按用户ID排序。
但是我查询它时遇到了麻烦。我想要的是只用userId来查询这个视图。这就是让date和count参数为null。
_view/viewName?limit=20&descending=true&endkey=["","","userId"]
没有给我预期的结果。
我是否应该使用list function过滤掉视图的结果。如果我这样做会对性能产生任何影响吗?
definitive guide的引用首先让我想到列表函数可用于过滤和汇总结果。
强大的迭代器API允许灵活地动态过滤和聚合行,以及输出原始转换,以便轻松制作Atom订阅源,HTML列表,CSV文件,配置文件,甚至只是修改过的JSON。 / p>
答案 0 :(得分:1)
列表功能与您的案例无关。从你与自己联系的文档:
虽然Show函数用于自定义文档表示,但List函数用于相同目的,但是针对View函数结果。
显示功能用于表示各种格式的文档,通常是具有更好格式的HTML页面。它们还可用于运行服务器端功能,而无需预先存在的文档。
要解决您的问题,只需更改发出的密钥的顺序,首先放置userId
,即:
[ doc.userId, a.toLocaleDateString(), doc.count ]
并相应地更新您的查询。
如果无法更改发出的键的顺序,只需创建另一个视图。