mapreduce - 如何编写 CouchDb View ?

标签 mapreduce couchdb

我的 couchDB 数据库中有此类文档的列表。

{
   "_id": "9",
   "_rev": "1-f5a9a0b76c6ae1fe5e20f1a1f9e6f8ba",
   "Project": "Vaibhava",
   "Type": "activity",
   "Name": "Civil_Clearence",
   "PercentComplete": "",
   "DateAndTime": "",
   "SourcePMSId": "1049",
   "ProgressUpdatedToPMSFlag": "NO",
   "UserId": "Kundan",
   "ParentId": "5"
}

如何编写 View 函数,以便当我将 doc._id 作为键传递时,我必须获取该 doc._id 的所有兄弟(带有 ParentId 的文档与我发送的 key 相同)??

最佳答案

正如在另一个答案中所说,不可能通过单个请求来做到这一点。

但是,您可以改为执行以下操作:

  1. 定义索引在 ParentID 上的映射(没有 reduce) View :

    function(o) {
      if (o.ParentID) {
        emit(o.ParentID);
      }
    }
    
  2. 向您的对象发送第一个请求以了解其父对象的 ID:

    GET /myDatabase/myObject
    
  3. 然后向您的 View 发送请求

    GET /myDatabase/_design/myApp/_view/myView/?key="itsParent"&include_docs=true
    

有多个请求在这里不会造成太大伤害,因为它们的数量 (2) 是恒定的。 此外,您可以将它们隐藏在由 NodeJS 处理的单个请求后面。

关于mapreduce - 如何编写 CouchDb View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15447968/

相关文章:

hadoop - 寻找对 Hadoop 的整体评论

python - Pyspark reduceByKey 与 (key, Dictionary) 元组

javascript循环嵌套数组并根据另一个数组提取属性

cross-domain - 来自 XMLHttpRequest 的 CouchDB 跨域访问?

couchdb - CouchDB 中的相关对象

java - 从 MongoDB 中的一个查询中获取多个字段计数?

scala - 如何在缩放时计算类型管道中行中列的频率?

javascript - 计算/异步数据获取

node.js - CouchDB 和 Node.js - 你推荐什么模块?

java - 在 android/java 中访问 PouchDB?