我在 CouchDB 中有一些 type:"Person"
和 type的文档"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#a-practical-example在同一个设计文档中显示了两个视图,所以我不认为每个文档只能有一个视图。