2012-05-17 36 views
0

我在CouchDB中有一些类型的文档:"Person""Account"为什么只有其中一个CouchDB视图有效?

对于这些类型的我已经创建了如下设计文件的所有文件中_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和保存被褥的源视图文档时被接受。

蒲团列表directory_views/all_personsdirectory_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在同一设计文档中显示了两个视图,所以我不认为每个文档只能有一个视图。

+2

我没有任何问题,您使用的是哪个版本的CouchDB?你的文件是什么样的?为了以防万一,您是否在蒲团之外尝试过? –

+0

嗯......似乎已经修好了。我根本没有更新文档,只是在本地机器上尝试过 - 视图按预期行事。我怀疑它可能是一个聪明的代理服务器。我没有在Futon之外尝试过直接HTTP请求,但是这是一个很好的建议,我会告诉我代理是否阻碍了(非Futon请求不会被缓存)。我会接受你的回答。谢谢! – Hellfire

+0

是的,只是证实了它 - 使用蒲团之外的视图完美的作品。 - 也尝试了一个非代理连接,这也起作用。我认为代理正在缓存一些它不应该的东西。再次感谢! – Hellfire

回答

1

尝试直接访问您的视图(即,在蒲团之外)以查看它是否以相同的方式运行。

相关问题