CouchDB:在视图中表示NVL()

时间:2013-09-26 16:21:54

标签: couchdb couchbase couchapp couchdb-futon

我正在为下面的SQL命令编写Couchdb _design文档:

SELECT NVL(MAX(NVL(VERSION,0)),0)+1 FROM pricelistdocs WHERE 
PRICE_LIST_ID = ?  AND DELETION_FLAG = 0;

我在运行并返回值时想出了一个_design视图函数,但我怀疑上述SQL命令的正确和满足期望。

function(doc){
 if(doc.PRICE_LIST_ID == "110011"  && doc.DELETION_FLAG == "0" ){
   emit(doc._id, doc.VERSION);
 }
}

请问如何将NVL()MAX功能添加到上面的_design视图文档中。 感谢任何infortiom或线索。谢谢你的时间。

1 个答案:

答案 0 :(得分:1)

您可以通过检查字段的存在来编写自己的NVL函数,如果不存在则返回0。

对于最大功能,您必须在视图中添加reduce功能。如果你只想获得最大值,"reduce": "_max"会做,这是一个内置的reduce函数。