Допустим, у меня есть коллекция пользователей. У них есть «предметы», и у каждого субъекта есть приоритет, который определяет, какой приоритет имеет пользователь в этом предмете. У меня было несколько ситуаций, подобных этому, но теперь пусть это будут пользователи, темы и приоритеты.CouchDB структура представления
Я хочу показать пользователей, которые выбрали тему и отсортировать их по приоритету. Пользователи и subjetcs в «многие ко многим», и это realtions является образцом структура пользователя:
{ name:"Nic",
subjects: [
{ name:"math", priority:10},
{ name:"english", priority: 11} ...]}
Как следует организовать структуру вида?
Первый вариант - создать вид by-subject
, уменьшить пользователей по теме и получить список пользователей «математики», таких как _view/by-subjects?key="math"&reduce=true
. Но в этом случае я должен сортировать по приоритету в клиентском приложении ...
Во-вторых, для создания отдельного представления по каждому предмету и испускания priority
в качестве ключа. Поэтому я мог бы взять данные от _view/math?descending=true
, и он будет отсортирован. Но, как я понял каждый раз, когда новый пользователь вставил в БД, все 42 представления будут обновлены (в случае, если у меня есть 42 предмета). В первом случае у меня есть только одно представление для обновления.
Итак, вопрос в том, какой вариант предпочтительнее для CouchDB или более идиоматический?
спасибо, это имеет смысл, чувствую себя немного глупо :) – zarkone
На самом деле, я снова застрял .. Если я 'emit', например' [" math ", 8]' Мне нужно было запросить точно весь ключ, например '? key = [" math ", 8]'. В противном случае я не получаю никаких строк в ответе – zarkone
вам не следует - сколько раз мне нужна была дружеская помощь, чтобы отступить назад и увидеть простое решение для чего-то, что у меня было несколько сложных ответов для :-) –