2016-08-12 1 views
0

couchDBデータベースには1つのデザインドキュメントが入っています。何らかの理由で、デザイン文書が他のすべてのレコード/文書の最後にありません。これは私が通常_all_docsを照会してから最後の結果を削除するときに問題を引き起こします(設計文書でなければなりません)couchDB design docは他のすべてのドキュメントの末尾にありません

これは、endkey = '_'を使用してデザイン文書を返さないときにも問題になります。

私が気付いたもう一つの異常は、デザイン文書を一括して削除した後、endkey = '_'を使用してクエリを実行すると結果の途中まで終了します。そしてそれが終わるレコードは、デザイン文書が削除される前に座っていた場所も面白いです。

答えて

1

デザイン文書が常にビュー結果の最後の行であるという前提は間違っています。

すべてのビューはキーでソートされ、_all_docsはビューであり、doc._idをキーとして使用します。

あなたのコードはおそらく偶然によって過去に働いていた可能性があります。おそらく、あなたは過去に数字で始まるIDを持つドキュメントだけを持っていたのであろうし、今では最初に文字でIDを持つドキュメントがあります。 ( "_design/foo"のアンダースコアは、数字の後、文字 "a"のあとにアルファベット順で表示されます)

+0

私はそれが簡単だったと思います!私のすべてのIDはcouchDBによって自動的に生成されるので、すべて数字または文字です。これはテストDBで約10レコードしかありません。彼らはすべて数字か文字で始まり、単一のデザイン文書があります。これらのドキュメントの1つは何らかの理由で混乱しています。それは、なぜデザイン文書を削除してendkey = _を使ってクエリを実行すると、10個の文書のうち最初の4個だけを返すのかということです。再び彼らのIDのすべてには '_'がありません。 – GifCo

+0

_all_docsを開始キーと終了キーなしで照会すると、データベース内のすべての文書が表示されます。私は6人の文書がIDで始まっていると思います。なぜなら、エンドキーにアンダースコア( "_")を使用すると、4つのドキュメント(数字で始まるIDを持つすべてのドキュメント)しか表示されない理由が説明されます。 – pwagner

+0

ああ、アンダースコアはcouchDB発注方式の数値よりも高いランクですか? – GifCo

関連する問題