CouchDB:在视图中代表 NVL()

Posted

技术标签:

【中文标题】CouchDB:在视图中代表 NVL()【英文标题】:CouchDB: representing NVL() in view 【发布时间】:2013-09-26 16:21:53 【问题描述】:

我正在为下面的 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 视图文档中。 任何信息或线索表示赞赏。感谢您的宝贵时间。

【问题讨论】:

【参考方案1】:

您可以编写自己的 NVL 函数,方法是检查字段是否存在,如果不存在则返回 0。

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

【讨论】:

以上是关于CouchDB:在视图中代表 NVL()的主要内容,如果未能解决你的问题,请参考以下文章

Couchdb、couch-connector 和多个数据库

从 couchapp 自定义登录 couch.log?

是否有 jquery.couch.js 的文档? [关闭]

如何使用 Jquery 和 CouchDb 创建 SIGN UP 和 LOG IN?

Couchapp 在查询视图时返回 304

如何使用 Python 在 Couchdb 中显示所有文档