如何在couchbase中访问reduce函数中的json值?

时间:2014-01-23 15:37:03

标签: couchbase couchbase-view

我在Couchbase中的reduce函数[仅用于测试]:

function(keys,values,reduce){
return values[0];
}

结果在这里

{"rows":[
{"key":null,"value":{"doctype":"closed_auctions","buyer":"person14108"}}
]
}

我想在进一步的过程中获得单个值reduce,所以当我尝试获取像values[0].doctype这样的doctype的值时,即使应该有“closed_auctions”,它也会返回null。问题是什么?如何在reduce函数中获得单个值(我的意思是字段值)。

1 个答案:

答案 0 :(得分:3)

执行地图后调用的reduce函数。还记得re-reduce也被调用,那时你的结果会被进一步聚合。运行此视图时应使用“group = true”。

因此,有时值[0]可能没有文档

您需要首先检查属性/ doc是否存在,例如

function(keys, values, rereduce)
{
  if (values[0] && values[0].doctype)
  {
    return values[0].doctype;
  }
}

希望有所帮助。

另请参阅:9.5.2.4. Writing Custom Reduce Functions