Запросы N1QL против запросов с несколькими ключевыми значениями в базе couch

Мы используем couch base node.js SDK, мы получаем список идентификаторов из внешней службы (может быть 200-500 идентификаторов), и нам нужно получить документы из нашей корзины, отсортированные, отфильтрованные и разбитые на страницы в соответствии с различными атрибутами.

вопрос в том, какой подход лучше? 1 запрос N1QL, "ВЫБРАТЬ x, y, z ИЗ документов WHERE docs.id IN [список идентификаторов, динамически устанавливаемых] ORDER BY docs.title LIMIT 10 OFFSET 50"

или создайте запросы с несколькими KV и выполните сортировку и фильтрацию в самом приложении узла.

даст ли индекс какое-либо значение при поиске списка идентификаторов?


person Amir Gur    schedule 14.12.2016    source источник


Ответы (1)


Вы можете использовать ИСПОЛЬЗОВАНИЕ КЛЮЧЕЙ с N1QL. Вы также можете добавить предложение WHERE, если вам нужны дополнительные условия.

SELECT x,y,z
FROM docs
USE KEYS [list of ids dynamically set]
ORDER BY docs.title
LIMIT 10
OFFSET 50;
person geraldss    schedule 14.12.2016
comment
Благодарность! Быстрое наблюдение: при использовании USE KEYS есть ли смысл определять индекс, или первичный индекс является наиболее эффективным? - person Amir Gur; 15.01.2017
comment
USE KEYS вообще не использует никаких индексов, даже первичных индексов. - person geraldss; 16.01.2017