javascript - CouchDB 按链接文档属性排序

标签 javascript mapreduce couchdb

我有以下数据:

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/

相关文章:

javascript - TypeScript:如何将 DefaultTheme 与样式组件结合起来?

javascript - jQuery 鼠标滚轮每次都会加载并减慢我的网站速度

xml - Hadoop中的XML处理失败

hive - 指定从 Hive 插入生成的文件的最小数量

node.js - 带有 CouchDB 附件的服务文件?

couchdb - CouchDB 是否支持多范围查询?

元查询的数据库结构

javascript - 如何处理对象字面量?

javascript - 从 typescript 文件调用 javascript 文件中的函数

logging - Hadoop MapReduce 中间输出