2017-02-10 32 views
0

Хорошо, так что моя проблема в том, что у меня многообразный вид, который работает.CouchDB multikey view с массивом

function (docu) { 
    if(!docu.deleted){ 
    emit([docu.key1, docu.key2, docu.key3], docu); 
    } 
} 

Я пытаюсь добавить еще один ключ к этому уже многоэлементному массиву. Ключ я пытаюсь добавить массив строковых значений,

[ 
"test", 
"test2" 
] 

Я запрашивая мой взгляд, используя PouchDB и встроенный в метод запроса, код ниже.

database.query("views/viewTest", { 
    startkey: [key1, key2, key3, key4], 
    endkey: [key1, key2, key3, key4], 
    reduce: false 
}, function (err, res) { 
    if (err) { 
     console.log(err); 
     alert(err); 
    } else { 
     console.log(res); 
    } 
}); 

Где key4 - это мой новый массив. Мне немного повезло с моей функцией карты, изменив ее на emit([docu.key1, docu.key2, docu.key3, [docu.key4]], docu);, но это работает только в том случае, если в массиве есть только один элемент, и мне нужно, чтобы он работал для нескольких элементов в массиве.

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

Я попытался запрашивая с startkey и endkey, где key4 имел {} толкнул в нее для endkey, но это все возвращается. Мне нужны только значения, возвращаемые в массиве key4, если они соответствуют другим клавишам.

Так просуммировать:

  • Мой взгляд/запрос работает, прежде чем добавить в новый массив КЛЮЧ4.
  • View/query работает, если в массиве key4 есть элемент ONE.
  • Мне нужно, чтобы он работал для ВСЕХ элементов в массиве key4.
  • Я пробовал несколько вещей и мог/не мог заставить это работать.

Любые предложения?

ответ

0

Почему вы не используете уникальный массив, который объединяет key4 в [key1, key2, key3]?

function (docu) { 
    if(!docu.deleted){ 
    var key = [docu.key1, docu.key2, docu.key3].concat(doc.key4); 
    emit(key, docu); 
    } 
} 
+0

Они проблема заключается в том, что 'key4' из документа всегда будет один пункт повестки дня,' String', в то время как при поиске в 'запуске/endkey' это будет' 'Array' из String's , Поэтому мне нужно, чтобы «карта» могла захватить вход и протестировать, если «ключ4» из документа находится внутри клавиши «start/endkey »4 и испускает их. –

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

  • Нет связанных вопросов^_^