Para borrar documentos de cosmosdb existen varias formas de hacerlo se puede hacer con el SDK, etc. buscando en los documentos de Microsoft y cosmosdb encontré una forma muy fácil y simple para poder borrar documentos.

Lo primero que tenemos que hacer es crear un StoreProcedure en la collection donde deseamos borrar los documentos.

Damos clic a la colección de datos y luego nos vamos al botón que dice New Store Procedure de esta manera podemos iniciar a agregar el código que se ocupa para borrar los documentos.

Le damos el nombre que deseamos al SP.

Ahora viene la interesante el SP de javascript que vamos a usar para hacer el borrado de documentos no lo escribí yo. Este lo encontré en este documento que además tiene ejemplos para otro tipo de procedimientos almacenados.

function bulkDelete(query) {
var collection = getContext().getCollection();
var collectionLink = collection.getSelfLink();
var response = getContext().getResponse();
var responseBody = {
deleted: 0,
continuation: true
};
if (!query) throw new Error("The query is undefined or null.");
tryQueryAndDelete();
function tryQueryAndDelete(continuation) {
var requestOptions = {continuation: continuation};
var isAccepted = collection.queryDocuments(collectionLink, query, requestOptions, function (err, retrievedDocs, responseOptions) {
if (err) throw err;
if (retrievedDocs.length > 0) {
tryDelete(retrievedDocs);
} else if (responseOptions.continuation) {
tryQueryAndDelete(responseOptions.continuation);
} else {
responseBody.continuation = false;
response.setBody(responseBody);
}
});
if (!isAccepted) {
response.setBody(responseBody);
}
}
function tryDelete(documents) {
if (documents.length > 0) {
var isAccepted = collection.deleteDocument(documents[0]._self, {}, function (err, responseOptions) {
if (err) throw err;
responseBody.deleted++;
documents.shift();
tryDelete(documents);
});
if (!isAccepted) {
response.setBody(responseBody);
}
} else {
tryQueryAndDelete();
}
}
}


Yo lo probé y funciona muy bien. Lo interesante es que solamente le tenemos que pasar un script tipo SQL para borrar los documentos que necesitamos. Y bueno se pueden hacer todos los cambios que necesite para que se ajuste mejor a sus necesidades.

Leave a Reply

Your email address will not be published.