Передача значений в функцию карты — CouchDB

Мне было интересно, можно ли передать значения функции карты в документе дизайна CouchDB.

Например:

В приведенном ниже коде можно передать значение, введенное пользователем, и использовать это значение для запуска функции карты. Может быть, я могу передавать пользователей UserName, когда они входят в систему, а затем отображать представление на основе функции карты.

function(doc) {
   if(doc.name == data-Entered-By-User) {
   emit(doc.type, doc);
  }
}

Заранее спасибо. С Уважением


person Skywalker    schedule 17.02.2015    source источник
comment
Ознакомьтесь с документами о том, как работают представления. Короткий ответ: нет, но я думаю, вам нужно больше узнать о том, как работает CouchDB (и его представления).   -  person Dominic Barnes    schedule 18.02.2015


Ответы (1)


Это распространенная ошибка в CouchDB при использовании представлений. Это немного сбивает с толку, но вместо этого:

function (doc) {
  if (doc.value === 'thing I am looking for') {
    emit(doc.value);
  }
}

Что вы хотите, так это:

function (doc) {
  emit(doc.value);
}

И затем, когда вы делаете запрос, вы делаете:

/mydb/_design/myddoc/_view/myview?key="thing I am looking for"

Вы можете прочитать мой 12. профессиональные советы по улучшению кода с помощью PouchDB, особенно совет № 9. Советы в равной степени применимы и к CouchDB. :)

person nlawson    schedule 25.02.2015