Я отправил это в список рассылки CouchDB-Users, но подумал, что раскрою свою сеть немного шире.
[ссылки уничтожены из-за новых правил спама для пользователей stackoverflow :-(]
Надеюсь, один из вас, умных людей, сможет помочь (или, по крайней мере, кто-то может окончательно сказать мне, что я пытаюсь сделать это невозможно, и я нужно искать альтернативы ... Я слышал, что MySQL набирает обороты (-:).
Справочная информация: Я создал пример базы данных здесь: scoates-test.couchone.com/_utils/database.html?follow / scoates-test.couchone.com/follow
У меня есть два типа документов. type = user и type = asset.
Пример пользователя: scoates-test.couchone.com/_utils/document.html?follow/c988a29740241c7d20fc7974be05f67d[12264 sizes Пример ресурса: scoates-test.couchone.com/_utils/document. ? follow / c988a29740241c7d20fc7974be061d62
Пользователи могут подписываться на других пользователей (поле type = пользовательский документ "следующий"). Приведенный выше пример user (username = bob) "следующий" за 2 пользователями:
"following": [
"c988a29740241c7d20fc7974be05ec54", // username=aaron
"c988a29740241c7d20fc7974be060bb4" // username=dale
]
Активы принадлежат определенному пользователю. Приведенный выше актив принадлежит c988a29740241c7d20fc7974be061d62 (username = bob).
Надеюсь, это имеет смысл.
Я хотел бы запросить активы, принадлежащие пользователям, на которых Боб подписан (аарон и Дейл), Я не могу указать на код представления, который позволит это. Я могу легко выпустить все активы, которые принадлежат c988a29740241c7d20fc7974be05f67d.
Я мог сделать это в двух запросах. Сначала я бы попросил CouchDB c988a29740241c7d20fc7974be05f67d, а затем POST следующее как «ключи» к представлению, которое возвращает активы, принадлежащие этим ключам, но вы заметите, что в моих документах type = asset также есть поле "когда", и я хочу иметь возможность чтобы упорядочить это, отправив [doc.owner, doc.when] в качестве ключа, а затем используя startKey / endKey. Так что, я думаю, POST ключей отсутствует.
Я мог бы просто подключиться на стороне приложения (запросить следующие ключи, сделать один запрос для каждый из этих ключей, а затем сортировать на стороне приложения), но это очень сильно нарушает разбиение на страницы (я бы необходимо запрашивать ограничение размера страницы для каждого следующего), и это выходит из-под контроля очень быстро (если пользователь подписан на 1000 пользователей, это 10 000 записей на страницу).
Ни одно из этих решений у меня не работает. Я бы хотел сделать это в CouchDB.
Я действительно в тупике. Пожалуйста, помогите.
S