在Couchbase视图中筛选已删除的集合

时间:2015-08-21 10:50:53

标签: couchbase couchbase-view

如何在Couchbase视图中编写条件以从结果中过滤已删除的集合。

function (doc, meta) {
  if(doc.type=='folder'){
    emit(doc.folder_id, doc);
  }
}

这是我的简单视图,它在json响应中提供了一些已删除的文件夹。

1 个答案:

答案 0 :(得分:0)

  1. 请记住,观点最终是一致的。他们不会返回实时数据。视图可能需要一点时间来实际反映CB中的数据。

  2. 具体而言,删除的项目最多需要一分钟才能从CB视图结果中删除。这有点可配置。

  3. 重要提示:不要发出" doc"在您的观点中 - 这是浪费的(因为它将每个文档的另一个副本存储在CB中)。

  4. 相反,您通常可以请求附加文档 结果(在python中称为" include_doc" - http://pythonhosted.org/couchbase/api/views.html)。这可以帮助您解决手头的问题:如果您要求文档包含在查看结果中,那么如果文档已被删除,则根本不会返回它 - 告诉您它已被删除。

    1. 或者,如果你没有' include_doc'在您的客户端中,您可以手动执行:获取视图结果(只是文档ID列表),对于每个文档,执行" get"检索数据。如果您无法找到该文档,则会将其删除。 (与视图不同,' get'操作完全一致 - 它们反映了写入光盘的数据)。