Docs Menu
Docs Home
/ /

Delete Documents

En esta guía, puedes aprender cómo remover documentos de tus colecciones de MongoDB usando operaciones de borrar.

Los ejemplos de esta guía utilizan el restaurants Colección de la base de datos sample_restaurants. Los documentos de esta colección utilizan las siguientes clases Restaurant, Address y GradeEntry como modelos:

public class Restaurant
{
public ObjectId Id { get; set; }
public string Name { get; set; }
[BsonElement("restaurant_id")]
public string RestaurantId { get; set; }
public string Cuisine { get; set; }
public Address Address { get; set; }
public string Borough { get; set; }
public List<GradeEntry> Grades { get; set; }
}
public class Address
{
public string Building { get; set; }
[BsonElement("coord")]
public double[] Coordinates { get; set; }
public string Street { get; set; }
[BsonElement("zipcode")]
public string ZipCode { get; set; }
}
public class GradeEntry
{
public DateTime Date { get; set; }
public string Grade { get; set; }
public float? Score { get; set; }
}

Nota

Los documentos de la colección restaurants utilizan la convención de nomenclatura snake-case. Los ejemplos de esta guía utilizan un ConventionPack para deserializar los campos de la colección en notación Pascal y asignarlos a las propiedades de la clase Restaurant.

Para obtener más información sobre la serialización personalizada, consulte Serialización personalizada.

Esta colección es de la Conjuntos de datos de muestra proporcionados por Atlas. Consulte la Guía de inicio rápido para aprender a crear un clúster gratuito de MongoDB y cargar estos datos de muestra.

Utilice operaciones de eliminación para eliminar documentos que coincidan con un filtro de consulta. El filtro de consulta determina qué registros se seleccionan para su eliminación según los criterios del documento del filtro de consulta. Puede realizar operaciones de eliminación en MongoDB con los siguientes métodos:

  • DeleteOne(), que elimina el primer documento que coincide con el filtro de consulta

  • DeleteMany(), que elimina todos los documentos que coinciden con el filtro de consulta

El siguiente código muestra cómo utilizar el método asincrónico DeleteOneAsync() o el método sincrónico DeleteOne() para eliminar un documento.

var result = await _restaurantsCollection.DeleteOneAsync(filter);
var result = _restaurantsCollection.DeleteOne(filter);

El siguiente código muestra cómo utilizar el método asincrónico DeleteManyAsync() o el método sincrónico DeleteMany() para eliminar todos los documentos coincidentes.

var result = await _restaurantsCollection.DeleteManyAsync(filter);
var result = _restaurantsCollection.DeleteMany(filter);

Tip

Encuentra ejemplos ejecutables utilizando estos métodos en información adicional.

Los DeleteOne() DeleteMany() métodos y requieren un filtro de consulta que especifique los documentos que se deben buscar. Encontrará más información sobre cómo construir un filtro de consulta en el tutorial "Consultar documentos".

Ambos métodos aceptan opcionalmente un tipo DeleteOptions como parámetro adicional, que representa las opciones que se pueden usar para configurar la operación de eliminación. Si no se especifica ninguna propiedad DeleteOptions, el controlador no personaliza la operación de eliminación.

El tipo DeleteOptions le permite configurar opciones con las siguientes propiedades:

Propiedad
Descripción

Collation

Gets or sets the type of language collation to use when sorting results. See the delete statements for more information.

Comment

Gets or sets the comment for the operation. See the delete command fields for more information.

Hint

Gets or sets the index to use to scan for documents. See the delete statements for more information.

Let

Gets or sets the let document. See the delete command fields for more information.

El siguiente código utiliza el método DeleteMany() para buscar en el índice "borough_1" y eliminar todos los documentos donde el valor del campo address.street incluye la frase "Pearl Street":

var filter = Builders<Restaurant>.Filter
.Regex("address.street", "Pearl Street");
DeleteOptions opts = new DeleteOptions { Hint = "borough_1" };
Console.WriteLine("Deleting documents...");
var result = _restaurantsCollection.DeleteMany(filter, opts);
Console.WriteLine($"Deleted documents: {result.DeletedCount}");
Console.WriteLine($"Result acknowledged? {result.IsAcknowledged}");
Deleting documents...
Deleted documents: 26
Result acknowledged? True

Tip

Si en el ejemplo anterior se utilizara el método DeleteOne() en lugar de DeleteMany(), el controlador eliminaría el primero de los 26 documentos coincidentes.

Los métodos DeleteOne() y DeleteMany() devuelven un tipo DeleteResult. Este tipo contiene la propiedad DeletedCount, que indica el número de documentos eliminados, y la propiedad IsAcknowledged, que indica si se reconoce el resultado. Si el filtro de consulta no coincide con ningún documento, no se elimina ningún documento y DeletedCount es 0.

Para obtener ejemplos ejecutables de operaciones de eliminación, consulte los siguientes ejemplos de uso:

Para obtener más información sobre cualquiera de los métodos o tipos discutidos en esta guía, consultar la siguiente documentación de la API:

Volver

Reemplaza

En esta página