CouchDB:获取CouchDB数据库*中的所有文档,但*设计文档除外

时间:2014-12-18 11:51:47

标签: database couchdb

在couchDB中,我有一个包含一些文档的数据库。创建视图时,将在此数据库内部创建视图以及文档。然后当我获取数据库的所有元素时,couchDB返回包括视图在内的所有元素。有什么方法可以将所有内容与观点分开吗?

3 个答案:

答案 0 :(得分:0)

执行此操作的一种方法是在将文档插入CouchDB时对文档进行“分类”。执行此操作的常用技巧是为您创建的所有文档添加“类型”属性。

e.g。

{
  firstName: 'John',
  lastName:  'Doe',
  type: 'user'
} 

然后,您可以创建一个仅返回具有该属性的文档的view

function(doc) {
  if (doc.type) {
    emit(doc._id, doc);
  }
}

答案 1 :(得分:0)

您可以使用

/<mydb>/_all_docs?descending=true&endkey="_design0"

_design0中的'0'确保输出在第一个设计文档之前停止。可选参数inclusive_end = false也可以起作用,但在短期测试中不适合我。

有关详细信息,请参阅http://docs.couchdb.org/en/latest/api/database/bulk-api.html

但我也更喜欢这个任务的简单视图。

答案 2 :(得分:0)

使用它应该有效:

/<mydb>/_all_docs?endkey="_design"

如果您只使用自动生成的ID,那么您也可以使用:

/<mydb>/_all_docs?endkey="_"

但是,如果您使用自定义ID,则可能会导致问题,因为&#34; _&#34;字符介于大写和小写字母之间。