在couchdb中仅获取文档的少数属性

时间:2012-03-30 20:02:15

标签: couchdb

我有一个网站,我的文档大小约为1MB。为了避免任何类型的概念连接,我将所有相关数据放在一个文档中。

现在我经常只需要获取文档的一个或两个属性。每个文档都有超过10个属性,其中许多属性非常大。我不能继续为每个属性组合编写视图。

我该怎么办?我看到的唯一方法是动态创建视图,然后使用这些视图。或者有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

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

虽然调用更新功能似乎很奇怪,但沙发允许您在不更新文档的情况下从文档返回信息。请参阅xml示例。

这可能是您可以扩展的示例:

将jsonpath添加到ddoc,(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]; 
}