View работает в CouchDb, но возвращает пустой результат

В демонстрационной базе данных хранятся следующие документы...

{
  "_id":"biking",
  "_rev":"AE19EBC7654",
  "title":"Biking",
  "body":"My biggest hobby is mountainbiking. The other day...",
  "date":"2009/01/30 18:04:11"
}

 {
 "_id":"bought-a-cat",
 "_rev":"4A3BBEE711",
 "title":"Bought a Cat",
 "body":"I went to the the pet store earlier and brought home a little kitty...",
 "date":"2009/02/17 21:13:39"
 }

 {
  "_id":"hello-world",
  "_rev":"43FBA4E7AB",
  "title":"Hello World",
  "body":"Well hello and welcome to my new blog...",
  "date":"2009/01/15 15:52:20"
  }

Теперь при запуске следующего представления, которое возвращает дату и заголовок из документа, если он существует...

 function(doc) {
    if(doc.date && doc.title) {
                 emit(doc.date, doc.title);

} }

возвращает пустой результат..

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

}

...этот результат не ожидается....


person Sunita Kumari    schedule 01.09.2014    source источник
comment
все выглядит хорошо для меня. Я бы попробовал изменить вид, чтобы он возвращался только в том случае, если doc.date или только в том случае, если doc.title, а затем постепенно определял причину.   -  person Hans    schedule 01.09.2014
comment
для того, чтобы выполнить запрос, нужно запустить представления... это можно сделать через Futon или командную строку, а также curl -X GET localhost:5984/demo/_design/demo1/_view/view1 ..@ Марчин Скоржевски   -  person Sunita Kumari    schedule 09.09.2014


Ответы (1)


Предполагая, что все ваши документы правильно сохранены в CouchDB, это означает, что вы можете запросить каждый документ через GET

http://127.0.0.1:5984/myDatabase/biking

затем мы можем ограничить проблемную область либо представлениями M/R, либо самим запросом.

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

Вы можете убедиться, что ваш вид работает правильно с помощью функции временного просмотра футона.

После того, как вы убедитесь, что представление работает правильно, я предполагаю, что вы пытаетесь вызвать представление через Postman, одна из распространенных проблем при вызове его через Postman — не забудьте указать информацию для входа в URL-адрес.

http://username:[email protected]:5984/myDatabase/biking

вы можете проверить это, вызвав встроенные представления, например

http://username:[email protected]:5984/myDatabase/_all_docs

Также убедитесь, что reduce не выполняется, вы можете явно указать это с помощью reduce=false в своем запросе.

person Andy    schedule 02.09.2014
comment
наконец, я получил ошибку ... при сохранении полей в документе я поместил поля в двойные кавычки, а при запросе doc.title или любого поля ... он не смог получить к нему доступ ... Глупый я ... спасибо ребята за помощь.... - person Sunita Kumari; 09.09.2014
comment
@SunitaKumari, не могли бы вы рассказать мне, как вы решили проблему? В моем случае была выдана ошибка (ПРЕДУПРЕЖДЕНИЕ: ошибка выполнения представления - null null), и я действительно не понимаю, что это не так. Благодарю вас! - person OsomA; 22.08.2016