使用Riak.js / Riak,我该如何做" AND"选择?

时间:2014-07-01 20:24:45

标签: node.js riak riak-search riak-js

我正在尝试确定是否存在一个对象来决定是使用新的key创建新对象还是更新现有对象。这里的目标是匹配两个二级索引。

db.query(bucket, {end: null, definition_id: id}, function(err, data) {
    if (err) {
        res.send(err);
    } else {
        if (data.length === 0) {
            // write new obj
        } else {
            // add to current obj
        }
    }
});

如果使用HTTP API有一种简单的方法可以解决这个问题,那么,我也无法在文档中找到它。

感谢。

1 个答案:

答案 0 :(得分:3)

Riak的二级索引不支持同时查询两个索引,您需要分别查询每个索引,然后与结果集相交。

但是,如果您需要定期查询同一对索引,则可以创建除其他索引之外的复合索引。因此,如果要编制索引,end和definition_id,还要创建一个end-def索引,其值为end,definition_id与分隔符连接。