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

时间:2014-11-24 19:29:29

标签: json rest couchbase couchbase-view

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

e.g。

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,它会取消引用该文档,但它不会出现在文档中。我应该在我生成的索引中包含完整的文档吗?如果没有,我如何按键检索文档?

1 个答案:

答案 0 :(得分:2)

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

REST API不应用于向服务器读取或写入数据。数据操作(例如set和get)由Couchbase SDKs处理。