9

CouchDBを1回呼び出すだけで、特定のドキュメントのリストを照会したいと思います。

SQLで私は次のようなことをします

SELECT *
FROM database.table
WHERE database.table.id
IN (2,4,56);

CouchDBで、_idまたは別のフィールドでこれを行うためのレシピは何ですか?

4

2 に答える 2

7

指定されたセットのキーを持つレコードを取得するには、viewskeys クエリパラメータを使用する必要があります。

function(doc){
    emit(doc.table.id, null);
}

その後

GET /db/_design/ddoc_name/_view/by_table_id?keys=[2,4,56]

ドキュメントのコンテンツを同時に取得するinclude_docs=Trueには、リクエストにクエリパラメータを追加するだけです。

UPD:おそらく、この参照ID(2,4,56)でドキュメントを取得することに興味があるかもしれません。デフォルトでは、CouchDBは、発行されたキーとそれらが属するドキュメントを「マップ」します。この動作を微調整するには、リンクされたドキュメントのトリックを使用できます。

function(doc){
    emit(doc.table.id, {'_id': doc.table.id});
}

そして今リクエスト

GET /db/_design/ddoc_name/_view/by_table_id?keys=[2,4,56]&include_docs=True

idを保持するドキュメントを指すフィールド、キー、および2参照4されたドキュメントコンテンツを含む行を含む行を返します。56doc

于 2012-10-06T20:21:24.430 に答える
3

CouchDBでは、バルクドキュメントAPiはこれに使用されます。

curl -d '{"keys":["2","4", "56"]}' -X POST http://127.0.0.1:5984/foo/_all_docs?include_docs=true

http://wiki.apache.org/couchdb/HTTP_Bulk_Document_API

于 2012-10-07T08:37:31.587 に答える