CouchDB views - множественное объединение ... Это можно сделать? - PullRequest
0 голосов
/ 06 сентября 2010

У меня есть три типа документов MainCategory, Category, SubCategory ... у каждого есть parentid, который относится к идентификатору их родительского документа.

Поэтому я хочу настроить представление, чтобы я мог получитьсписок подкатегорий, которые находятся под MainCategory (желательно просто с использованием функции карты) ... Я не нашел способ упорядочить представление, так что это возможно.

В настоящее время я настроил представление, которое получаетследующий вывод -

    {"total_rows":16,"offset":0,"rows":[
{"id":"11098","key":["22056",0,"11098"],"value":"MainCat...."},
{"id":"11098","key":["22056",1,"11098"],"value":"Cat...."},
{"id":"33610","key":["22056",2,"null"],"value":"SubCat...."},
{"id":"33989","key":["22056",2,"null"],"value":"SubCat...."},
{"id":"11810","key":["22245",0,"11810"],"value":"MainCat...."},
{"id":"11810","key":["22245",1,"11810"],"value":"Cat...."},
{"id":"33106","key":["22245",2,"null"],"value":"SubCat...."},
{"id":"33321","key":["22245",2,"null"],"value":"SubCat...."},
{"id":"11098","key":["22479",0,"11098"],"value":"MainCat...."},
{"id":"11098","key":["22479",1,"11098"],"value":"Cat...."},
{"id":"11810","key":["22945",0,"11810"],"value":"MainCat...."},
{"id":"11810","key":["22945",1,"11810"],"value":"Cat...."},
{"id":"33123","key":["22945",2,"null"],"value":"SubCat...."},
{"id":"33453","key":["22945",2,"null"],"value":"SubCat...."},
{"id":"33667","key":["22945",2,"null"],"value":"SubCat...."},
{"id":"33987","key":["22945",2,"null"],"value":"SubCat...."}
]}

Какие параметры QueryString я бы использовал, чтобы получить, скажем, строки с ключом, начинающимся с ["22945" .... Когда все, что у меня есть (во время запроса), этоid "11810" (во время запроса у меня нет сведений о id "22945").

Если что-то из этого имеет смысл.

Спасибо

1 Ответ

1 голос
/ 06 сентября 2010

Способ хранения категорий кажется неоптимальным для запроса, который вы пытаетесь выполнить для него.

На MongoDB.org имеется страница различных стратегий реализации древовидных структур (они также должны применяться к Couch и другим документам doc) - вы должны учитывать Array of Ancestors, где вы всегда сохраняете полный путь к вашему узлу.Это усложняет обновление / перемещение категорий, но выполнение запросов выполняется просто и быстро.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...