IBM Cloud Docs
文書の取得

文書の取得

データベースのすべての文書をリストするには、 GET 要求を https://$ACCOUNT.cloudant.com/$DATABASE/_all_docs に送信します。

_all_docs エンドポイントは、以下の照会ストリングと JSON 本文の引数を受け入れます。

クエリ文字列とJSONボディ引数
引数 説明 オプション タイプ デフォルト
conflicts include_docstrue の場合にのみ設定できます。 競合に関する情報を各文書に追加します。 ある ブール値 いいえ
deleted_conflicts 削除された競合するリビジョンに関する情報を返します。 ある ブール値 いいえ
descending キーの降順で文書を返します。 ある ブール値 いいえ
endkey 指定されたキーに達したときに、レコードを返す処理を停止します。 ある ストリング
endkey_docid 指定された文書 ID に達したときに、レコードを返す処理を停止します。 endkey を設定しない場合、この引数は無視されます。 ある ストリング
include_docs 文書の完全な内容を戻り値に含めます。 ある ブール値 いいえ
inclusive_end "endkey" の値とキーが等しい行を含めます。 ある ブール値 はい
key 指定したキーと ID が一致する文書のみを返します。 ある ストリング
keys 指定したキーのいずれかと ID が一致する文書のみを返します。 ある ストリングのリスト
limit 返される文書の数を、指定した数に制限します。 ある 数値
meta 3 つの引数 conflictsdeleted_conflicts、および revs_info の組み合わせを表す省略表現。 meta=true を使用することは conflicts=true&deleted_conflicts=true&revs_info=true を使用することと同じです。 ある ブール値 いいえ
r 読み取りのクォーラム値を指定します。 ある 数値 2
revs_info 既知のすべての文書リビジョンの詳細情報を含めます。 ある ブール値 いいえ
skip 結果を返す前に、この数のレコードをスキップします。 ある 数値 0
startkey 指定したキーからレコードを返します。 ある ストリング
startkey_docid 指定した文書 ID からレコードを返します。 startkey を設定しない場合、この引数は無視されます。 ある ストリング

注記

  1. include_docs=true を使用すると、パフォーマンスへの影響が生じる可能性があります。

  2. keys 引数を使用する場合に、必要なキーをリストするために複数のストリングが必要であれば、POST 要求より GET 要求を送信するほうが簡単になる可能性があります。

  3. 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 オブジェクトです。 次の表に個々のフィールドの意味を示します。

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"
			}
		}
	]
}