15

複数のキーを使用している場合、couchdb ビューで適切なドキュメントを返すのに問題があります。

これはうまく機能し、一致するドキュメントを返します。

GET http://example.com:5984/myDb/_design/myFilters/_view/getItemByForeignKeyId?key=abc123

これは、一致するかどうかにかかわらず、ビュー内のすべてのドキュメントを返します。

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

私は通常、自分の答えを探すのがとても得意です。ただし、CouchDB のドキュメントでは、複数のキーを使用するための形式が非常に明確です。?keys=[123,123] を使用している人もいれば、?keys="abc","abc" も見たことがあります。

GETメソッドを使用した CouchDB の複数のキー クエリの「適切な」形式とエンコーディングについて誰かが明確に説明してくれれば、非常にありがたいです。

4

3 に答える 3

20

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

POST /myDb/_design/myFilters/_view/getItemByForeignKeyId
Content-Type: application/json

{
   "keys" : [
      "abc",
      "123"
   ]
}
于 2013-05-26T20:47:24.490 に答える
5

それが正しいとは言いませんが、実際にはクエリ文字列を介して行うこともできます。括弧で囲まれた配列はエンコードしないでください。たとえば、これは私にとってはうまくいきます:

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

于 2013-05-29T21:23:41.813 に答える