2015-01-12 4 views
1

следующие документы хранятся в CouchDBКак запросить элемент в массиве

{ 
    { 
    "_id": "1", 
    "_rev": "3-2882a4696d580cdef754a93c7e5e77e7", 
    "comb": [ 
     "4-5", 
     "4-6", 
     "5-6" 
    ] 
    }, 
    { 
    "_id": "2", 
    "_rev": "2-1991a898a5457308e3a89253e695cef5", 
    "comb": [ 
     "4-5", 
     "5-6" 
    ] 
    } 
} 

Ниже представлена ​​функциональная карта

function(doc) { 
    emit(doc.comb, null); 
} 

и http://localhost:5984/comb/_design/snp/_view/by_test?key="4-6" возвращается только

{"total_rows":2,"offset":0,"rows":[ 

]} 

Как можно ли найти элемент в массиве?

ответ

2

Вы должны были бы назвать emit для каждого элемента массива:

for (var i in doc.comb) { 
    emit(doc.comb[i], null); 
} 

Тогда ваш запрос будет найти все документы, которые имеют массив гребень, который включает в себя ключ, указанный в запросе.

+0

Спасибо, но мне пришлось изменить его на 'emit (doc.comb [c], null);'. – user977828

+0

Ах, да, конечно. Починил это. –

Смежные вопросы