使用REST API从couchbase视图检索文档

问题描述:

我以couchbase 3.01开始,我对视图有疑问。我读过的文件说你不应该在索引中包含完整的文档,因为它会对存储和性能产生负面影响。现在我已经创建了一个映射函数,并且我发送文档使用REST API从couchbase视图检索文档

例如null

function(doc, meta) { 
    if (doc.entity && doc.entity == 'desert') { 
    emit(doc.type, null); 
    } 
} 

这应该为我的各种类型的沙漠(饼干,冰淇淋,蛋糕)创建索引。当我保存该视图并在管理控制台中点击“显示结果”按钮时,我会看到所有与关联值null相关的键。

如果我更改我的映射函数以包含文档,例如

function(doc, meta) { 
    if (doc.entity && doc.entity == 'desert') { 
    emit(doc.type, doc); 
    } 
} 

我得到了我期望的结果,但是,我担心这是一种反模式。似乎曾经有一个查询字符串参数include_docs可以取消引用该文档,但它并未出现在文档中。我应该在我生成的索引中包含完整文档吗?如果不是,我如何通过键检索文档?

该模式是定义一个没有包含完整DOC的视图。然后,您可以使用特定于您的应用程序平台(例如Java,Python,Node.js,.Net等)的Couchbase客户端库,通过设置标志include_docs(在需要时)从您的视图访问文档。

REST API不应该用于读取或写入数据到服务器。数据操作(例如设置和获取)由Couchbase SDKs处理。

+0

我应该在我的问题中更清楚 - 我只是想在开发过程中通过浏览器查看视图内容。我打算从我的应用程序中使用SDK。 – Jason 2014-11-24 20:30:53

+0

哦,对于开发目的,您可以定义视图与文档返回...它只是不建议生产。此外,CB Web Console视图内容窗格显示您可以单击以在新窗口中打开的url - 这只不过是其他呼叫。 – user1697575 2014-11-24 20:33:14