Suppression d'un document
Les étapes présentées ici montrent comment supprimer un document.
- Envoyez une demande
DELETE
avec le dernier_rev
du document dans la chaîne de requête. - Exécutez la commande suivante :
https://$ACCOUNT.cloudant.com/$DATABASE/$DOCUMENT_ID
. La réponse contient l'ID et la nouvelle révision du document, ou un message d'erreur si la suppression a échoué.
Si vous ne parvenez pas à fournir le _rev
le plus récent, IBM Cloudant répond par une erreur 409. Cette erreur vous empêche d'écraser des données qui
ont été modifiées par d'autres clients. Si le quorum d'écriture ne peut pas être atteint, une réponse202
est renvoyée.
IBM Cloudant ne supprime pas complètement le document spécifié. En effet, il laisse un document tombstone comportant des informations de base sur le document. Le document tombstone est requis pour que l'action de suppression puisse être répliquée dans d'autres copies de la base de données. Etant donné que les documents tombstone restent dans la base de données indéfiniment, la création de documents et leur suppression augmentent l'utilisation de l'espace disque d'une base de données. Elles peuvent également augmenter le temps de requête pour l'index principal, qui est utilisé pour rechercher des documents par ID.
Les étapes suivantes vous indiquent comment supprimer une demande à l'aide de HTTP.
-
Envoyez une demande
DELETE
avec le fichier_rev
le plus récent dans la chaîne de requête à l'aide du protocole HTTP. -
Exécutez la commande suivante :
DELETE /$DATABASE/$DOCUMENT_ID?rev=$REV HTTP/1.1
.
Les exemples de code suivants vous montrent comment supprimer un document à l'aide de la ligne de commande.
# 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))
L'exemple précédent de Go requiert le bloc d'importation suivant :
import (
"encoding/json"
"fmt"
"github.com/IBM/cloudant-go-sdk/cloudantv1"
)
Tous les exemples de Go nécessitent l'initialisation de l'objet service
. Pour plus d'informations, reportez-vous à la documentation de l'API Section Authentification pour avoir des exemples.
Voir un exemple de réponse après une demande de suppression réussie.
{
"id": "exampleid",
"ok": true,
"rev": "2-056f5f44046ecafc08a2bc2b9c229e20"
}