文書の読み取り

以下の手順は、文書の読み取り方法を示しています。

  1. 文書を取得するために GET 要求を送信します。

  2. コマンド https://$ACCOUNT.cloudant.com/$DATABASE/$DOCUMENT_ID を実行します。

パーティション・データベースの場合は、$DOCUMENT_ID がパーティション・キーの部分と文書キーの部分で構成されることを思い出してください。

特定のドキュメントの _id がわからない場合は、データベースを照会する を実行して、すべてのドキュメントを確認できます

分散型で結果整合性モデルを採用しているという IBM Cloudant の性質のために、読み取りで古いデータが返される場合があります。 特に、同じクライアントによって最近書き込まれたデータであっても、書き込み要求の直後に読み取り要求から返されない場合があります。 この動作を回避するために、 クライアントはデータの状態をローカルにキャッシュすることができます。 キャッシングは、要求の数を抑え、アプリケーションのパフォーマンスを向上させ、データベース・クラスターの負荷を軽減するという点でも役に立ちます。 この動作は、MapReduce や検索索引などの他の読み取り要求にも適用されます。

HTTP を使用して文書を取得する例を以下に示します。

GET /$DATABASE/$DOCUMENT_ID HTTP/1.1

コード例で言語を選択することにより、使用するプログラミング言語に合わせてこのセクションをカスタマイズできます。

文書の取得の例を参照してください。

curl -H "Authorization: Bearer $API_BEARER_TOKEN" -X GET "$SERVICE_URL/products/small-appliances:1000042"
import com.ibm.cloud.cloudant.v1.Cloudant;
import com.ibm.cloud.cloudant.v1.model.Document;
import com.ibm.cloud.cloudant.v1.model.GetDocumentOptions;
Cloudant service = Cloudant.newInstance();
GetDocumentOptions documentOptions =
    new GetDocumentOptions.Builder()
        .db("products")
        .docId("small-appliances:1000042")
        .build();
Document response =
    service.getDocument(documentOptions).execute()
        .getResult();
System.out.println(response);
const { CloudantV1 } = require('@ibm-cloud/cloudant');
const service = CloudantV1.newInstance({});
service.getDocument({
  db: 'products',
  docId: 'small-appliances:1000042'
}).then(response => {
  console.log(response.result);
});
from ibmcloudant.cloudant_v1 import CloudantV1
service = CloudantV1.new_instance()
response = service.get_document(
  db='products',
  doc_id='small-appliances:1000042'
).get_result()
print(response)
getDocumentOptions := service.NewGetDocumentOptions(
  "products",
  "small-appliances:1000042",
)
document, response, err := service.GetDocument(getDocumentOptions)
if err != nil {
  panic(err)
}
b, _ := json.MarshalIndent(document, "", "  ")
fmt.Println(string(b))

前の Go の例では、以下のインポート・ブロックが必要です。

import (
   "encoding/json"
   "fmt"
   "github.com/IBM/cloudant-go-sdk/cloudantv1"
)

すべての Go の例では、serviceオブジェクトを初期化する必要があります。 詳しくは、API 資料の認証セクションで例を参照してください。

応答には、要求した文書が含まれています。文書を取得できなかった場合にはエラーの説明が含まれています。

文書を取得した場合の応答の例を以下に示します。

{
  "_id": "exampleid",
  "brand": "Foo",
  "colours": [
    "red",
    "green",
    "black",
    "blue"
  ],
  "description": "Slim Colourful Design Electronic Cooking Appliance for ...",
  "image": "assets/img/0gmsnghhew.jpg",
  "keywords": [
    "Foo",
    "Scales",
    "Weight",
    "Digital",
    "Kitchen"
  ],
  "name": "Digital Kitchen Scales",
  "price": 14.99,
  "productid": "1000042",
  "taxonomy": [
    "Home",
    "Kitchen",
    "Small Appliances"
  ],
  "type": "product"
}

照会パラメーター

URL には照会パラメーターを追加できます (例えば、/mydatabase/doc?attachments=true&conflicts=true など)。

パラメーターはすべてオプションです。

照会パラメーター
名前 タイプ 説明 デフォルト
attachments ブール値 添付ファイルの本文を応答に含めます。 いいえ
att_encoding_info ブール値 特定の添付ファイルが圧縮されている場合に、添付ファイルのスタブにエンコード情報を含めます。 いいえ
atts_since リビジョン・ストリングの配列 指定したリビジョンより後の添付ファイルのみを含めます。 指定したリビジョンの添付ファイルを含めません。 []
conflicts ブール値 文書内の競合に関する情報を含みます。 いいえ
deleted_conflicts ブール値 削除された競合するリビジョンに関する情報を含めます。 いいえ
latest ブール値 要求されたリビジョンに関係なく、最新の「リーフ」リビジョンを強制的に取得します。 いいえ
local_seq ブール値 文書の最終更新シーケンス番号を含めます。 いいえ
meta ブール値 照会パラメーター conflictsdeleted_conflicts、および open_revs を指定することと同じです。 いいえ
open_revs 配列または all 指定したリーフ・リビジョンの文書を取得します。 また、値 all を指定して、すべてのリーフ・リビジョンを返すこともできます。 []
rev ストリング 指定したリビジョンの文書を取得します。
revs ブール値 既知のすべての文書リビジョンのリストを含めます。 いいえ
revs_info ブール値 既知のすべての文書リビジョンの詳細情報を含めます。 いいえ

複数文書の読み取り

一度に複数のドキュメントを取得するには、include_docs オプションを使用して データベースにクエリを実行してください