我有以下数据:
payment1: {
id: "payment1",
categoryId: "category1"
}
payment2: {
id: "payment2",
categoryId: "category2"
}
payment3: {
id: "payment3",
categoryId: "category2"
}
category1: {
id: "category1",
name: "Food"
}
category2: {
id: "category2",
name: "Leisure"
}
我需要的是一个按类别 NAME 对付款数据进行排序的 View 。在 CouchDB 中可以吗?
提前致谢! 伊万
最佳答案
可能的事情与你想要的有点不同。
这是 map :
function (o) {
if (o.categoryId) {
emit(o.categoryId);
} else {
emit(o.id);
}
}
您将使用 /mydb/_design/mydesign/_view/myview?include_docs=true
调用它并得到:
{"rows":[
{"key":"category1", "doc":{"id":"payment1","categoryId":"category1"},
{"key":"category1", "doc":{"id":"category1","name":"Food"},
{"key":"category2", "doc":{"id":"payment2","categoryId":"category2"},
{"key":"category2", "doc":{"id":"payment3","categoryId":"category2"},
{"key":"category2", "doc":{"id":"category2","name":"Leisure"}
]}
换句话说,付款是按类别分组的,并且还与类别名称连接起来。但是,它们是根据类别 ID 排序的,而不是根据类别名称排序的。
您想要的将需要两种不同的排序(即“链式 map 缩减”)。
关于javascript - CouchDB 按链接文档属性排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30071921/