【问题标题】:CouchDb view - key in a listCouchDb 视图 - 键入列表
【发布时间】:2012-03-13 17:10:31
【问题描述】:

我想查询 CouchDB 并且我有一个特定的需求:我的查询应该返回与此条件相对应的文档的名称字段:id 相等或包含在文档字段(列表)中。 例如,字段输出如下:

"output": [
       "doc_s100",
       "doc_s101",
       "doc_s102",
       "doc_s103",
   ],

例如,我想获取其输出字段“doc_s102”中的所有文档。 我在设计文档中写了一个视图:

"backward_by_docid": {
           "map": "function(doc) {if(doc.output) emit(doc.output, doc.name)}"
       }

但只有当我在输出字段中具有唯一值时,此视图才有效。 我该如何解决这个问题?

谢谢!

【问题讨论】:

    标签: couchdb


    【解决方案1】:

    你必须遍历数组:

      if(doc.output) {
          for (var curOutput in doc.output) {
            emit (doc.output[curOutput],doc.name);
          }
      }
    

    确保输出始终是一个数组(至少 [])

    .. 当然,使用 key="xx" 代替 key=["xxx"]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-04
      • 1970-01-01
      • 1970-01-01
      • 2014-05-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多