Извлечение только нескольких атрибутов документа в couchdb - PullRequest
1 голос
/ 31 марта 2012

У меня есть сайт, где у меня есть документы размером около 1 МБ. Чтобы избежать каких-либо концептуальных объединений, я поместил все связанные данные в один документ.

Теперь мне часто нужно выбрать только один или два атрибута документа. Каждый документ имеет более 10 атрибутов, многие из которых довольно большие. Я не могу продолжать писать представления для каждой комбинации атрибутов.

Как мне это сделать? Единственный способ, которым я вижу, - это создание представлений на лету, а затем использование этих представлений. ИЛИ есть ли лучший метод?

1 Ответ

2 голосов
/ 01 апреля 2012

http://wiki.apache.org/couchdb/Document_Update_Handlers

Хотя кажется странным вызывать функцию обновления, кушетка позволяет вам возвращать информацию из документа без ее обновления.См. Пример xml.

Вот пример, который вы можете расширить:

Добавить jsonpath к вашему документу, (https://github.com/s3u/JSONPath)

function(doc, req) { 
    var jsonpath = require('jsonpath');
    var path = req.query.path;
    var target = jsonpath(doc, path);
    var json = JSON.stringify(target);
    var resp = { 'headers' : { 'Content-Type' : 'application/json' }, 'body' : json };
    return [doc, resp]; 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...