2012-03-12 43 views
1

我要查询的CouchDB和我有特殊需要:我的查询应返回对应于这个条件文件的名称字段:id为等于或包含提交了一份文件(列表)中。 例如,场输出如下:的CouchDB视图 - 键在列表

"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)}" 
     } 

,但是当我在输出域独特的价值这种观点只适用。 如何解决此查询?

谢谢!

回答

2

你必须遍历阵列之上:

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

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

..,当然使用key = “XX” 代替键= [“xxx”]

+0

感谢您的答案,它的工作! – user162284 2012-03-15 16:26:59

+0

+1。 为我工作。谢谢okurow。 – Vida 2015-12-17 17:37:21