CouchDB для запросов фиксированных категорий - PullRequest
2 голосов
/ 14 июля 2011

У меня есть такие документы в моей CouchDB:

{
  "_id": "0cb35be3cc73d6859c303fa3200011d2",
  "_rev": "1-f6e356bbf6ab09290aae11132af50d66",
  "adresse": "Bohrgaß 10 /",
  "plz": 56814,
  "ort": "Faid /",
  "kw": 2.32,
  "traeger": "SOL"
  ...
}

Существуют предопределенные категории для определенных атрибутов, например, traeger: "SOL", "BIO", "WAS"; квт: <2, 2-5, 5-20, 20-100; Плз: 56814, Плз: 56815; ... </p>

Я должен иметь возможность эффективно запрашивать общее количество документов для каждой категории и общее количество документов и сами документы при определенных условиях. Например.

  1. Сколько документов в категории kw <2 (и во всех других категориях kw) при условии traeger = "SOL" </li>
  2. Сколько документов в категории traeger = "SOL" (и всех других категориях traeger) при условиях plz = 56814 AND kw <2 </li>

Пользователь может выбрать, какие категории он любит комбинировать. Категории являются фиксированными. Также будет больше атрибутов и категорий.

Как бы отображались / уменьшались функции для этого?

Marcel

1 Ответ

3 голосов
/ 14 июля 2011

Поскольку вы собираетесь считать документы, ваша функция сокращения - это просто встроенный счетчик . Функция вашей карты должна выдавать соответствующие ключи, которые ваши пользователи будут искать. Наконец, когда запрашивается представление, нужно выбрать соответствующий уровень группы.

Пример: вы можете создать представление с помощью составного ключа ["traeger", "kw"]. Если вы запросите это представление с group_level = 2, вы получите количество документов для каждой комбинации traeger и kw.

Если вы заботитесь только о трегере "SOL", вы можете ограничить вывод параметрами start_key и end_key.

Если вы хотите узнать количество документов в каждой категории «traeger» независимо от их «kw», вы можете запросить это представление с помощью group_level 1.

Для вашего второго примера вы можете создать представление с ключом ["plz", "kw", "traeger"] и запросить его, используя start_key и end_key, чтобы ограничить результаты plz = 56814 AND kw <2, и установить уровень_группы до 3. </p>

Варианты запросов для представлений перечислены здесь:

http://wiki.apache.org/couchdb/HTTP_view_API#Querying_Options

...