couchDB:返回NOT NULL值的视图,不返回NULL值

时间:2013-02-07 10:01:38

标签: couchdb

我有一个包含两种类型文档的couchDB数据库。文档A有x个项目,文档b有-y项目。

每个产品都有一个ID,一个文档A和许多与之关联的文档B. (把它想象成一个库存。文件A一开始有多少项。文件B代表销售/破损等。)

我需要生成一个视图,该视图返回所有产品的id,并带有正数项。

我写了一张地图缩小版如下:

MAP:

function(doc) {
 if (doc.Type === "Delivery") {

      emit(doc.ProductID, doc.Items );
    }
  if (doc.Type === "Sale") {
        emit(doc.ProductID, -(doc.Items));
    }
}

REDUCE:

function(keys, values) {
    var total =  sum(values);
    if (total > 0) {
        return total
    }
}

查询时,会返回我们没有库存的产品的大量NULL值。它返回我们所拥有的正数。

如果我查询此视图,我会得到一个巨大的 {productID:NULL}对列表。

我使用了List,它只返回值为NULL的东西,但每次更新视图时似乎都需要重建。我添加一个值,然后构建整个列表。它开始需要很长时间,而且随着数据库规模的扩大,它似乎会继续花费更长的时间。

有没有办法只返回没有NULL值的视图的id? (像NOT NULL是sql)。 或者,有没有人知道这种情况的最佳做法?

0 个答案:

没有答案