文書の取得
データベースのすべての文書をリストするには、
GET
要求を https://$ACCOUNT.cloudant.com/$DATABASE/_all_docs
に送信します。
_all_docs
エンドポイントは、以下の照会ストリングと JSON 本文の引数を受け入れます。
引数 | 説明 | オプション | タイプ | デフォルト |
---|---|---|---|---|
conflicts |
include_docs が true の場合にのみ設定できます。 競合に関する情報を各文書に追加します。 |
ある | ブール値 | いいえ |
deleted_conflicts |
削除された競合するリビジョンに関する情報を返します。 | ある | ブール値 | いいえ |
descending |
キーの降順で文書を返します。 | ある | ブール値 | いいえ |
endkey |
指定されたキーに達したときに、レコードを返す処理を停止します。 | ある | ストリング | |
endkey_docid |
指定された文書 ID に達したときに、レコードを返す処理を停止します。 endkey を設定しない場合、この引数は無視されます。 |
ある | ストリング | |
include_docs |
文書の完全な内容を戻り値に含めます。 | ある | ブール値 | いいえ |
inclusive_end |
"endkey " の値とキーが等しい行を含めます。 |
ある | ブール値 | はい |
key |
指定したキーと ID が一致する文書のみを返します。 | ある | ストリング | |
keys |
指定したキーのいずれかと ID が一致する文書のみを返します。 | ある | ストリングのリスト | |
limit |
返される文書の数を、指定した数に制限します。 | ある | 数値 | |
meta |
3 つの引数 conflicts 、deleted_conflicts 、および revs_info の組み合わせを表す省略表現。 meta=true を使用することは conflicts=true&deleted_conflicts=true&revs_info=true を使用することと同じです。 |
ある | ブール値 | いいえ |
r |
読み取りのクォーラム値を指定します。 | ある | 数値 | 2 |
revs_info |
既知のすべての文書リビジョンの詳細情報を含めます。 | ある | ブール値 | いいえ |
skip |
結果を返す前に、この数のレコードをスキップします。 | ある | 数値 | 0 |
startkey |
指定したキーからレコードを返します。 | ある | ストリング | |
startkey_docid |
指定した文書 ID からレコードを返します。 startkey を設定しない場合、この引数は無視されます。 |
ある | ストリング |
注記
-
include_docs=true
を使用すると、パフォーマンスへの影響が生じる可能性があります。 -
keys
引数を使用する場合に、必要なキーをリストするために複数のストリングが必要であれば、POST
要求よりGET
要求を送信するほうが簡単になる可能性があります。 -
keys
引数を使用した場合に、リビジョンが削除されていると、戻されるvalue
属性は、 文書の現行の_rev
と_deleted
属性を持つ JSON オブジェクトになります。doc
属性は、要求でinclude_docs=true
を指定した場合にのみ取り込まれ、文書が削除されるとnull
になります。
HTTP を使用してデータベースのすべての文書をリストする例を以下に示します。
GET /_all_docs HTTP/1.1
データベース内のすべての文書をリストするには、次の例を参照してください。
curl -H "Authorization: Bearer $API_BEARER_TOKEN" -X POST "$SERVICE_URL/orders/_all_docs" -H "Content-Type: application/json" --data '{ "include_docs": true, "startkey": "abc", "limit": 10}'
import com.ibm.cloud.cloudant.v1.Cloudant;
import com.ibm.cloud.cloudant.v1.model.AllDocsResult;
import com.ibm.cloud.cloudant.v1.model.PostAllDocsOptions;
Cloudant service = Cloudant.newInstance();
PostAllDocsOptions docsOptions =
new PostAllDocsOptions.Builder()
.db("orders")
.includeDocs(true)
.startKey("abc")
.limit(10)
.build();
AllDocsResult response =
service.postAllDocs(docsOptions).execute().getResult();
System.out.println(response);
const { CloudantV1 } = require('@ibm-cloud/cloudant');
const service = CloudantV1.newInstance({});
service.postAllDocs({
db: 'orders',
includeDocs: true,
startKey: 'abc',
limit: 10
}).then(response => {
console.log(response.result);
});
from ibmcloudant.cloudant_v1 import CloudantV1
service = CloudantV1.new_instance()
response = service.post_all_docs(
db='orders',
include_docs=True,
start_key='abc',
limit=10
).get_result()
print(response)
postAllDocsOptions := service.NewPostAllDocsOptions(
"orders",
)
postAllDocsOptions.SetIncludeDocs(true)
postAllDocsOptions.SetStartKey("abc")
postAllDocsOptions.SetLimit(10)
allDocsResult, response, err := service.PostAllDocs(postAllDocsOptions)
if err != nil {
panic(err)
}
b, _ := json.MarshalIndent(allDocsResult, "", " ")
fmt.Println(string(b))
前の Go の例では、以下のインポート・ブロックが必要です。
import (
"encoding/json"
"fmt"
"github.com/IBM/cloudant-go-sdk/cloudantv1"
)
すべての Go の例では、service
オブジェクトを初期化する必要があります。 詳しくは、API 資料の認証セクションで例を参照してください。
HTTP を使用して、指定したキーの 1 つ以上に一致するデータベース内のすべての文書をリストする例を以下に示します。
GET /_all_docs?keys=["somekey","someotherkey"] HTTP/1.1
指定されたキーの少なくとも 1 つに一致するデータベース内のすべての文書をリストするには、次の例を参照してください。
curl -H "Authorization: Bearer $API_BEARER_TOKEN" -X POST "$SERVICE_URL/orders/_all_docs" -H "Content-Type: application/json" --data '{
"include_docs": true,
"keys": ["somekey", "someotherkey"],
"limit": 10
}'
import com.ibm.cloud.cloudant.v1.Cloudant;
import com.ibm.cloud.cloudant.v1.model.AllDocsResult;
import com.ibm.cloud.cloudant.v1.model.PostAllDocsOptions;
import java.util.Arrays;
Cloudant service = Cloudant.newInstance();
PostAllDocsOptions docsOptions =
new PostAllDocsOptions.Builder()
.db("orders")
.includeDocs(true)
.keys(Arrays.asList("somekey", "someotherkey"))
.limit(10)
.build();
AllDocsResult response =
service.postAllDocs(docsOptions).execute().getResult();
System.out.println(response);
const { CloudantV1 } = require('@ibm-cloud/cloudant');
const service = CloudantV1.newInstance({});
service.postAllDocs({
db: 'orders',
includeDocs: true,
keys: ['somekey', 'someotherkey'],
limit: 10
}).then(response => {
console.log(response.result);
});
from ibmcloudant.cloudant_v1 import CloudantV1
service = CloudantV1.new_instance()
response = service.post_all_docs(
db='orders',
include_docs=True,
keys=['somekey', 'someotherkey'],
limit=10
).get_result()
print(response)
postAllDocsOptions := service.NewPostAllDocsOptions(
"orders",
)
postAllDocsOptions.SetIncludeDocs(true)
postAllDocsOptions.SetKeys([]string{"somekey", "someotherkey"})
postAllDocsOptions.SetLimit(10)
allDocsResult, response, err := service.PostAllDocs(postAllDocsOptions)
if err != nil {
panic(err)
}
b, _ := json.MarshalIndent(allDocsResult, "", " ")
fmt.Println(string(b))
前の Go の例では、以下のインポート・ブロックが必要です。
import (
"encoding/json"
"fmt"
"github.com/IBM/cloudant-go-sdk/cloudantv1"
)
すべての Go の例では、service
オブジェクトを初期化する必要があります。 詳しくは、API 資料の認証セクションで例を参照してください。
応答は、パラメーターに一致するデータベース内のすべての文書を含む JSON オブジェクトです。 次の表に個々のフィールドの意味を示します。
フィールド | 説明 | タイプ |
---|---|---|
offset |
文書リストの開始位置のオフセット。 | 数値、NULL (null を指定した場合は、タイプが keys になることがあります。) |
rows |
文書オブジェクトの配列。 | 配列 |
total_rows |
照会のパラメーターに一致するデータベースまたはビューの文書数。 | 数値 |
pdate_seq |
データベースの現在の更新シーケンス。 | ストリング |
データベースのすべての文書を要求した後に返される応答の例を以下に示します。
{
"total_rows": 3,
"offset": 0,
"rows": [
{
"id": "5a049246-179f-42ad-87ac-8f080426c17c",
"key": "5a049246-179f-42ad-87ac-8f080426c17c",
"value": {
"rev": "2-9d5401898196997853b5ac4163857a29"
}
},
{
"id": "96f898f0-f6ff-4a9b-aac4-503992f31b01",
"key": "96f898f0-f6ff-4a9b-aac4-503992f31b01",
"value": {
"rev": "2-ff7b85665c4c297838963c80ecf481a3"
}
},
{
"id": "d1f61e66-7708-4da6-aa05-7cbc33b44b7e",
"key": "d1f61e66-7708-4da6-aa05-7cbc33b44b7e",
"value": {
"rev": "2-cbdef49ef3ddc127eff86350844a6108"
}
}
]
}