Что-то не так с моей сложной обработкой запросов CouchDB.
У меня есть функция карты, которая выдает сложный ключ, состоящий из 6 параметров, например:
emit([doc.profileId, doc.beamId, doc.name, doc.beambeanchId, "true", attachName], {beamdocId:doc._id, attachName:attachName})
мои параметры запроса (coffescript) такие:
params =
startkey:[ profileId, beamId, namePrefix, beambeanchId, hasAttach, attachNamePrefix]
endkey:[
profileId or "\ufff0",
beamId or "\ufff0",
namePrefixEnd or "\ufff0",
beambeanchId or "\ufff0",
hasAttachEnd,
attachNamePrefixEnd or "\ufff0"]
Проблема в том, что только два первых работают нормально, а остальные вообще не фильтруют. Например, когда я устанавливаю для namePrefixEnd значение, отличное от нуля, это не уменьшает мой результат.
Я пробовал это с ключами, испускаемыми как объекты и массивы. Та же история, работают только первые два. Третий игнорируется. Когда я меняю порядок, например, beamId с namePrefixEnd, только первые два работают правильно.
Есть идеи, что не так? Существуют ли какие-либо ограничения на количество параметров в сложных ключах CouchDB?
Я использую библиотеку nano для доступа к данным и функции db.view.