Как использовать выбор "И" с помощью Riak.js / Riak?

Я пытаюсь определить наличие объекта, чтобы решить, создавать ли новый объект с новым 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 ответ

Решение

Вторичная индексация Riak не поддерживает одновременный запрос 2 индексов, вам нужно будет запрашивать каждый индекс отдельно и затем пересекать результирующие наборы.

Однако, если вам нужно регулярно запрашивать одну и ту же пару индексов, вы можете создать составной индекс в дополнение к другим. Так что, если вы индексируете, end и definition_id, также создайте индекс end-def, значениями которого являются end и definition_id, объединенные с разделителем.

Другие вопросы по тегам