Eliminazione di un documento

La procedura qui illustrata mostra come eliminare un documento.

  1. Invia una richiesta a DELETE con l'ultimo _rev del documento nella stringa della query.
  2. Eseguire il seguente comando: https://$ACCOUNT.cloudant.com/$DATABASE/$DOCUMENT_ID. La risposta contiene l'ID e la nuova revisione del documento, oppure un messaggio di errore se l'eliminazione non è riuscita.

Se non si fornisce l'indirizzo _rev più recente, IBM Cloudant risponde con un errore 409. Questo errore impedisce di sovrascrivere i dati modificati da altri client. Se il quorum di scrittura non può essere raggiunto, viene restituita la risposta 202.

IBM Cloudant non elimina completamente il documento specificato. Invece, lascia una lapide con le informazioni di base sul documento. La pietra tombale è necessaria affinché l'azione di cancellazione possa essere replicata in altre copie del database. Poiché le pietre tombali rimangono nel database a tempo indeterminato, creare nuovi documenti e cancellarli aumenta l'utilizzo dello spazio su disco di un database. Potrebbero anche aumentare il tempo di interrogazione dell'indice primario, utilizzato per cercare i documenti in base al loro ID.

I passi seguenti mostrano come cancellare una richiesta utilizzando HTTP.

  1. Inviare una richiesta DELETE con il documento più recente _rev nella stringa di query utilizzando HTTP.

  2. Eseguire il seguente comando: DELETE /$DATABASE/$DOCUMENT_ID?rev=$REV HTTP/1.1.

I seguenti esempi di codice mostrano come eliminare un documento utilizzando la riga di comando.

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

Il precedente esempio di Go richiede il seguente blocco di importazione:

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

Tutti gli esempi Go richiedono l'iniziazione dell'oggetto service. Per ulteriori informazioni, consultare la sezione Autenticazione della documentazione API per gli esempi.

Vedere un esempio di risposta dopo una richiesta di cancellazione andata a buon fine.

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