2012-03-12 45 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