4

私は自分のWebアプリにCouchDB1.1.1を使用しています-これまでのところすべてがうまく機能しています(ドキュメントの保存/取得、ビューの保存/クエリなど)が、特定のグループレベルで特定のキーのビューをクエリすることに固執しています。

私のビューのマップ関数は、次の形式でキーを出力します:["Thing 1""Thing2"]。正常に動作し、グループレベル1(つまり「thing1」による)とグループレベル2(つまり「thing2」による)の正しい値を出力するreduce機能があります。

さて、couchdbにクエリを実行すると、reduce = true(デフォルト)、group_level = 2(または、2つのレベルしかないためこの場合も同じ)およびkey =を設定すると、特定のキーを1つだけ取得できます。 「desiredkeyhere」keys =["key1""key2"]を使用して複数のキーをクエリすることもできます。

ただし、group_level = 1の特定のキーを取得できるようにしたいのですが、それを機能させることができません。何も返さないようです。または、postリクエストを使用すると、すべてが返されます。必要なキーは1つだけではありません。

これが私が使用しているcouchdbhttpビューAPI(クエリオプション)へのリンクです: http ://wiki.apache.org/couchdb/HTTP_view_API#Querying_Options

次の文が含まれています。「注:reduce関数への複数キー要求はgroup = trueのみをサポートし、group_levelはサポートされません(group_level =exactと同じです)。結果のエラーは「reduceビューのマルチキーフェッチにはgroup=trueが含まれている必要があります」です。 「」

これが、上記で説明したことを実行できないことを意味するかどうかはわかりません(特定のgroup_levelの特定のキーを取得します)。これはcouchdbの大きな問題のように思われるので、Imが何か間違ったことをしていると仮定します。

何か案は?ありがとう

4

1 に答える 1

2

これも打ってきました。ただし、それがバグかどうかはわかりません。

startkeyandendkeyを通常の (2 項目) 形式で使用してみてください。結果が必要です["Thing 1", *](明らかに疑似コード、星は何でも表します)。で削減するgroup_level=1と、そのすべてが1行に要約されます。

したがって、いわば、モノ 1 の「名前空間」内の基本的にすべてをクエリします。照合する「最小」値は object でnullあり、「最大」値は object{}であるため、これらは範囲に適したブックエンドになります。

?group_level=1&startkey=["Thing 1",null]&endkey=["Thing 1",{}]

それはあなたが必要とする結果をあなたに与えますか?

于 2012-05-30T12:48:05.113 に答える