如果一个文档中的某些字段不存在于另一个文档中,如何获取具有最新状态的文档

时间:2016-06-14 14:05:01

标签: javascript mapreduce couchdb couchbase couchdb-futon

我有一些文件如下面的结构,doc1中的userid不存在于doc2中,

doc1: userid='abc',  probNumber='123', status='OPEN',...
doc2: probNumber='123', status='CLOSE'.....

我想根据给定的doc.probNumber获取最新的状态文档,但视图的关键是doc.userid或者使用doc.userid与doc.probNumber组合来实现以下

userid='abc',  probNumber='123', status='CLOSE',...

这是视图并减少,如果我使用probNumber作为发出的键,但我的客户端请求我使用userid作为地图中的键,以获得给定相同probNumber的最新状态?如果没有,是否可以使用带有doc.probNumber组合的doc.userid作为地图中的关键字来获取给定相同probNumber的最新状态?

function(doc) {
  if (doc.probNumber) {
      emit(doc.probNumber, [doc.status]);
  }
}

  function(keys, values, rereduce) {
      var latest = values[0];
      var i = values.length;
      while (i--) {
        var val = values[i];
        if (val[0] == 'CLOSE') latest = val;
      }
      return latest;
    }

0 个答案:

没有答案