2016-08-12 116 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