Я оцениваю CouchBase для приложения и пытаюсь выяснить что-то о запросах диапазона в представлениях. Я знаю, что могу получить представление для одного ключа, нескольких ключей или диапазона. Могу ли я получить для нескольких диапазонов? то есть я хочу получить элементы с ключом просмотра 0-10, 50-100, 5238-81902. Мне может одновременно понадобиться 100 разных диапазонов, поэтому необходимость делать 100 запросов к базе данных кажется слишком накладной.
Представление CouchBase для нескольких диапазонов
Ответы (1)
Насколько я знаю, в Couchbase нет возможности реализовать получение значений из нескольких диапазонов в одном представлении. Возможно, в Couchbase N1QL есть (или будут реализованы в будущем) какие-то фичи, но я с ними не работал.
Ответ на ваш вопрос 100 запросов не будут большими накладными расходами. Couchbase работает тихо и быстро, и он предназначен для обработки большого количества операций в секунду. Кроме того, если ваше представление спроектировано правильно, оно не будет «пересчитываться» при каждом запросе.
Также есть другой способ: 1. Определите минимальное и максимальное значение вашего диапазона (в вашем примере это будет 0..81902) 2. Представление запроса, которое будет возвращать только идентификаторы документов и значение, на котором был основан диапазон, без включения все документы в результате. 3. На стороне клиента отфильтруйте массив результатов предыдущего шага в соответствии с вашими диапазонами (0-10, 50-100, 5238-81902), а затем используйте getMulti с идентификаторами документов, которые остались в массиве.
Я не знаю вашей структуры данных, поэтому вы можете попробовать оба способа, протестировать их и выбрать лучший, который будет соответствовать вашим требованиям.