2016-08-12 118 views
0

我有一个couchDB数据库,其中包含一个设计文档。出于某种原因,设计文档不在我所有其他记录/文档的末尾。这通常会导致问题,因为我通常会查询_all_docs,然后删除最后一个结果(应该是设计文档)。couchDB设计文档不在所有其他文档的末尾

使用endkey ='_'不返回设计文档时,这也是一个问题。

我注意到的另一个异常是在将设计文档全部删除并用endkey ='_'查询后,结果中途结束。而且,在删除设计文档之前,它最终的记录也足够有趣。

任何想法???

回答

1

假设设计文档始终是视图结果的最后一行是错误的。

所有视图都按键排序,而_all_docs是一个视图,它使用doc._id作为键。

您的代码可能在过去只是巧合。据推测,你只有以ID开头的文档,而且现在有一些文档在开始时带有带有字母的ID。 (“_design/foo”中的下划线在数字之后和字母“a”之前按字母顺序排列。)

+0

我希望它那么简单!我所有的ID都是由couchDB自动生成的,因此它们都是数字或字母。这是一个测试DB,只有大约10条记录。他们都以数字或字母开头,并有一个设计文档。其中一个文档因某种原因而被搞乱。这就是为什么删除设计文档并使用endkey = _查询后,它只返回10个文档中的前4个文档。即使他们的所有ID都没有'_'。 – GifCo

+0

如果查询没有开始键和结束键的_all_docs,它会显示数据库中的所有文档。我想6个文档的ID都以一个字母开头。这就可以解释为什么你只看到4个文档 - 所有的ID都以数字开头 - 当你为endkey使用下划线(“_”)时。 – pwagner

+0

Ohhh的下划线排名高于couchDB排序方案中的数字吗? – GifCo