Как показать только собственные документы пользователя в CouchDB? - PullRequest
0 голосов
/ 30 марта 2012

Чтобы отфильтровать собственные документы пользователя от чужих, я возвращаю создателя документа в качестве ключа или части ключа:

org.couchdb.user:user1

или

[org.couchdb.user:user1, otherkey]

Это лучший способ создать страницу "Мои документы"? Или я могу просто вернуть другой ключ

otherkey

и использовать userCtx, чтобы отфильтровать его позже?

1 Ответ

0 голосов
/ 10 ноября 2012

Ответ зависит от вашей архитектуры.

Если между вашими клиентами и базой данных имеется какое-то «промежуточное программное обеспечение», вы можете ограничить выборку данных из второго описанного вами шаблона представления ([org.couchdb.user:user1, otherkey]), запросив ?startkey=["org.couchdb.user:user1"]&endkey=["org.couchdb.user:user1",{}]. Это ограничивает результаты теми, которые находятся между первым возможным выпущенным ключом и последним, потому что более короткий массив сортируется раньше, а объект сортируется после других типов значений.

Если вы пытаетесь выполнить как можно больше проверки и отображения данных в CouchDB (например, вы пишете «CouchApp»), тогда вам следует рассмотреть вопрос об использовании отфильтрованной репликации . Это может быть использовано для предоставления каждому пользователю собственной персональной базы данных, например, подмножество непубличной основной базы данных, содержащей только документы, которые они должны видеть. Затем вы можете просто отправить ключи простого документа и предположить, что ваши результаты будут включать только соответствующие документы.

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

...