2013-05-26 16 views
12

複数のキーを使用する場合、適切なドキュメントを返すcouchdbビューを取得する際に問題が発生します。複数のキーを使用したCouchDBのクエリビュー書式設定

これは、一致する文書を返して正常に動作します:

は、一致するかどうか、これは返しますビュー内のすべての文書を返しますhttp://example.com:5984/myDb/_design/myFilters/_view/getItemByForeignKeyId?key=abc123

GET:

がGET http://example.com:5984/myDb/_design/myFilters/_view/getItemByForeignKeyId?keys=%5B%22abc123%22%5D

私は通常、私の答えを捜すのがとてもうまくいきます。しかし、CouchDBのドキュメントは、複数のキーを使用するためのフォーマットについて非常に明確です。私はいくつかのキー= [123,123]を使用して見てきましたが、私も見ましたか?keys = "abc"、 "abc"

GETメソッドを使用して、誰かがCouchDB用の複数のキークエリの「適切な」フォーマットとエンコードを明確にすることができれば、私は非常に感謝しています。

答えて

15

ビューから複数のキーを取得するには、ポストリクエストを行い、リクエストボディにキーを送信する必要があります。あなたのHTTPリクエストは次のようになります:

+1

ありがとうございました。それはうまくいった。 CouchDBのドキュメントの文言は時々曖昧になる可能性があります。 –

4

実際にはクエリ文字列でも可能です。角括弧を囲む配列はエンコードしないでください。例えば。最後 で、

http://localhost:5984/test/_design/artists_albums/_view/albums_by_artist?keys=[%22Super%20bad%20artist%22,%20%22Fake%20artist%201%22]

+1

これは文書化されていません。それを使用しても問題ないですか、POSTリクエストを選択する必要がありますか? – albertjan

7

function(doc){ { if([doc.key1, doc.key2]) emit([doc.key1, doc.thingYouWantToKnow]); } }

とクエリ文字列でのキー= [ "key1Value"、 "key2Value"]、それが鍵であることを

注意:これは私の作品? = []、キーではない= [] !!!!!!!!!

関連する問題