문서 읽기
여기에 표시된 단계는 문서를 읽는 방법을 보여줍니다.
-
문서를 검색하기 위한
GET요청을 전송하십시오. -
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 |
부울 | conflicts, deleted_conflicts 및 open_revs 조회 매개변수를 지정하는 것과 동일합니다. |
거짓 |
open_revs |
배열 또는 all |
지정된 리프 개정판의 문서를 검색합니다. 또한 모든 리프 개정판을 리턴하는 all 값을 승인합니다. |
[] |
rev |
문자열 | 지정된 개정판의 문서를 검색합니다. |
|
revs |
부울 | 알려진 모든 문서 개정판의 목록을 포함시킵니다. | 거짓 |
revs_info |
부울 | 알려진 모든 문서 개정판에 대한 자세한 정보를 포함시킵니다. | 거짓 |
대량 읽기
한 번에 두 개 이상의 문서를 가져오려면, include_docs 옵션을 사용하여
데이터베이스를 쿼리하십시오.