Есть ли способ передать данные вложений в представлении CouchDB

Я нашел очень полезным использовать вложения CouchDB при отображении данных на веб-сайте. Однако, когда я реплицирую базу данных в мобильную среду, очень неэффективно запускать представление, а затем циклически просматривать документы, чтобы получить доступ к их вложениям. На платформе iOS/Android гораздо эффективнее хранить данные в виде обычных больших двоичных объектов и иметь доступ ко всем двоичным данным с помощью всего одного запроса просмотра, запроса просмотра, который в первую очередь выдает все данные документа. Есть ли способ прочитать вложение DATA в моей функции карты и включить его в оператор emit. Я вижу, что информация о вложении доступна через _attachments, но это не дает доступа к данным.

Обновление Основным недостатком (не подробно описанным в принятом ответе) использования BLOBS в самом документе, а не вложениях, является то, что при обновлении документа вы должны ПОЛУЧИТЬ весь документ, а затем отправить его обратно. Если вы не используете вложения, вам нужно получить все эти двоичные данные, а с вложениями — нет. Если вы будете обновлять свои документы, использование вложений — действительно единственный разумный способ проектирования для двоичных данных.

13
задан deepwinter 15 May 2012 в 20:08
поделиться