IBM Cloud Docs
Excluindo um documento

Excluindo um documento

As etapas mostradas aqui demonstram como excluir um documento.

  1. Envie uma solicitação DELETE com o _rev mais recente do documento na sequência de consulta.
  2. Execute o comando a seguir https://$ACCOUNT.cloudant.com/$DATABASE/$DOCUMENT_ID. A resposta conterá o ID e a nova revisão do documento ou uma mensagem de erro se a exclusão tiver falhado.

Se você falhar em fornecer o mais recente _rev, IBM Cloudant responderá com um erro 409. Esse erro impede que você sobrescreva dados mudados por outros clientes. Se a gravação quorum não puder ser atendida, uma resposta 202 será devolvida.

O IBM Cloudant não exclui completamente o documento especificado. Em vez disso, ele deixa um tombstone com informações básicas sobre o documento. O tombstone é necessário para que a ação de exclusão possa ser replicada para outras cópias do banco de dados. Como os tombstones ficam no banco de dados por tempo indeterminado, criar novos documentos e excluí-los aumenta o uso de espaço em disco de um banco de dados. Eles também podem aumentar o tempo de consulta para o índice primário, que é usado para consultar documentos por seu ID.

As etapas a seguir mostram como excluir uma solicitação usando HTTP.

  1. Envie uma solicitação DELETE com o _rev mais recente do documento na string de consulta usando HTTP.

  2. Execute o comando a seguir DELETE /$DATABASE/$DOCUMENT_ID?rev=$REV HTTP/1.1.

Os exemplos de código a seguir mostram como excluir um documento usando a linha de comandos.

# 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))

O exemplo do Go anterior requer o bloco de importação a seguir:

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

Todos os exemplos do Go requerem que o objeto service seja inicializado. Para obter mais informações, consulte a seção Autenticação da documentação da API para exemplos.

Veja uma resposta de exemplo após uma solicitação de exclusão bem-sucedida.

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