Couchbase视图查询

Couchbase视图查询,couchbase,couchbase-view,Couchbase,Couchbase View,我有一个视图可以为我过滤掉数据。我想在我的搜索标准中添加一个检查,如果文档中不存在字段,不要考虑文档。 这是我的视图代码,studentId可能不存在于所有文档中 function (doc, meta) { if(meta.id && meta.id.indexOf("DOCUMENT_") == 0 && doc.studentId != null) { emit([doc.studentId, doc.studentStatus, doc.stu

我有一个视图可以为我过滤掉数据。我想在我的搜索标准中添加一个检查,如果文档中不存在字段,不要考虑文档。

这是我的视图代码,studentId可能不存在于所有文档中

function (doc, meta) {
   if(meta.id && meta.id.indexOf("DOCUMENT_") == 0 && doc.studentId != null) {
   emit([doc.studentId, doc.studentStatus, doc.studentName], null);
  }
}

有任何指针吗?

只是一个小小的优化-如果bucket中的许多文档都缺少doc.studentId,您可能希望将其移到条件的开头


另外,不是所有文档都有meta.id吗?在代码中,只需使用前面在if语句中使用的相同语法即可:

if(doc.studentId&&meta.id&&meta.id.indexOf(“DOCUMENT”==0).

请注意以下内容

如果(博士,学生ID


如果定义了studentId,则返回true,否则返回false。

还有一件事:视图很好,但不要依赖它们来为您提供最新的数据:它们甚至可能返回已经删除的数据。如果您访问的文档不是很大,并且您需要最新的数据(特别是如果您的文档经常被删除),您可能应该将文档附加到视图,而不是发出所需的字段。这将提高结果的准确性(确保未检索已删除的项目等)@ FuffyaMi:或者使用STALLE=FALSE查询这个问题,你能更精确吗?@ JulianGo -这里是:=>我想在我的搜索标准中添加一个检查=>如果一个字段不存在于文档中,不要考虑文档。那么你的代码应该是在作弊…看到FuzzyAmi的改进答案。也许你也想要你的螺栓。如果(doc.studentId&&meta.id.indexOf(“DOCUMENT”==0),entId测试是否为