Почему работает только один из этих видов CouchDB?
У меня есть несколько документов в CouchDB типа: "Person"
и типа "Account"
,
Для прямого списка всех документов этих типов я создал следующий проектный документ в _design/directory_views
:
{
"_id": "_design/directory_views",
"_rev": "21-f5df9253504e66f28393f4bda360e110",
"views": {
"all_persons": {
"map": "(function(doc) { if (doc.type == \"Person\") { emit(null, { 'last_name': doc.last_name, 'first_name': doc.first_name }); } })"
},
"all_accounts": {
"map": "(function(doc) { if (doc.type == \"Account\") { emit(null, { 'username': doc.username }); } })"
}
}
}
Этот JSON проверяется на JSONLint и принимается при сохранении документа в исходном представлении Futon.
Футон списки directory_views/all_persons
а также directory_views/all_accounts
как и ожидалось в выпадающем списке. all_persons создает правильный список документов типа "Person"
, тем не мение all_accounts
перенаправляет обратно на верхний уровень All Documents
и перечисляет все.
Почему all_persons
работать, но all_accounts
потерпеть поражение?
PS. Я испытывал такое поведение в ряде проектных документов до сих пор. В этом примере http://kore-nordmann.de/blog/couchdb_a_use_case.html показаны два представления в одном документе дизайна, поэтому я не думаю, что вы можете иметь только одно представление на документ.
1 ответ
Попробуйте получить доступ к своему представлению напрямую (т. Е. За пределами Futon), чтобы увидеть, ведет ли он себя так же.