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