문서 삭제

여기에 표시된 단계는 문서를 삭제하는 방법을 보여줍니다.

  1. 조회 문자열에 문서의 최신 _rev가 포함된 DELETE 요청을 전송하십시오.
  2. https://$ACCOUNT.cloudant.com/$DATABASE/$DOCUMENT_ID 명령을 실행하십시오. 응답에는 문서의 ID 및 새 개정판이 포함되며 삭제에 실패하는 경우 오류 메시지가 포함됩니다.

최신 _rev 파일을 제공하지 않으면, IBM Cloudant 에서 409 오류를 반환합니다. 이 오류는 다른 클라이언트에서 변경한 데이터를 겹쳐쓰는 것을 방지합니다. 쓰기 정족수를 충족할 수 없는 경우 202 응답이 반환됩니다.

IBM Cloudant의 경우 지정된 문서를 완전히 삭제하지는 않습니다. 대신 문서에 대한 기본 정보가 포함된 삭제 표식을 남겨둡니다. 삭제 표식은 삭제 조치를 데이터베이스의 다른 사본에 복제하기 위해 필요합니다. 삭제 표식은 데이터베이스에서 무기한 유지되기 때문에 새 문서를 작성한 후 삭제하는 경우 데이터베이스의 디스크 공간 사용량이 증가합니다. 또한 해당 ID로 문서를 검색하기 위해 사용되는 1차 인덱스에 대한 조회 시간도 증가할 수 있습니다.

다음 단계에서는 HTTP를 사용하여 요청을 삭제하는 방법을 보여줍니다.

  1. HTTP를 사용하여 조회 문자열에 문서의 최신 _rev가 포함된 DELETE 요청을 전송하십시오.

  2. DELETE /$DATABASE/$DOCUMENT_ID?rev=$REV HTTP/1.1 명령을 실행하십시오.

다음 코드 예제는 명령행을 사용하여 문서를 삭제하는 방법을 보여줍니다.

# make sure $JSON contains the correct `_rev` value!
curl -H "Authorization: Bearer $API_BEARER_TOKEN" -X DELETE "$SERVICE_URL/events/0007241142412418284?rev=2-9a0d1cd9f40472509e9aac6461837367"
import com.ibm.cloud.cloudant.v1.Cloudant;
import com.ibm.cloud.cloudant.v1.model.DeleteDocumentOptions;
import com.ibm.cloud.cloudant.v1.model.DocumentResult;
Cloudant service = Cloudant.newInstance();
DeleteDocumentOptions documentOptions =
    new DeleteDocumentOptions.Builder()
        .db("events")
        .docId("0007241142412418284")
        .rev("2-9a0d1cd9f40472509e9aac6461837367")
        .build();
DocumentResult response =
    service.deleteDocument(documentOptions).execute()
        .getResult();
System.out.println(response);
const { CloudantV1 } = require('@ibm-cloud/cloudant');
const service = CloudantV1.newInstance({});
service.deleteDocument({
 db: 'events',
 docId: '0007241142412418284',
 rev: '2-9a0d1cd9f40472509e9aac6461837367'
}).then(response => {
 console.log(response.result);
});
from ibmcloudant.cloudant_v1 import CloudantV1
service = CloudantV1.new_instance()
response = service.delete_document(
 db='events',
 doc_id='0007241142412418284',
 rev='2-9a0d1cd9f40472509e9aac6461837367'
).get_result()
print(response)
deleteDocumentOptions := service.NewDeleteDocumentOptions(
 "events",
 "0007241142412418284",
)
deleteDocumentOptions.SetRev("2-9a0d1cd9f40472509e9aac6461837367")
documentResult, response, err := service.DeleteDocument(deleteDocumentOptions)
if err != nil {
 panic(err)
}
b, _ := json.MarshalIndent(documentResult, "", "  ")
fmt.Println(string(b))

이전 Go 예제에서는 다음 가져오기 블록이 필요합니다.

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

모든 Go 예제에서는 service 오브젝트가 초기화되어야 합니다. 자세한 정보는 API 문서 인증 섹션 예제를 참조하십시오.

성공적인 삭제 요청 후 응답 예제를 참조하십시오.

{
  "id": "exampleid",
  "ok": true,
  "rev": "2-056f5f44046ecafc08a2bc2b9c229e20"
}