Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

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 la colección restaurants 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 aprender más sobre la serialización personalizada, consultar Serialización personalizada.

Esta colección es de los conjuntos de datos de muestra proporcionados por Atlas. Consulte Primeros pasos con el controlador .NET/C# 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 query. El filtro de query determina qué registros se seleccionan para su eliminación según los criterios establecidos en el documento del filtro de query. Puedes realizar operaciones de eliminación en MongoDB con los siguientes métodos:

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

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

El siguiente código muestra cómo utilizar el método síncrono DeleteOne() o el método asíncrono DeleteOneAsync() para borrar un documento.

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

El siguiente código muestra cómo usar el método síncrono DeleteMany() o el método asíncrono DeleteManyAsync() para borrar todos los documentos que coincidan.

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

Tip

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

Los métodos DeleteOne() y DeleteMany() requieren que pases un filtro de query especificando qué documentos deben coincidir. Más información sobre cómo construir un filtro de query está disponible en el tutorial documentos de query

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

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

Propiedad
Descripción

Collation

Obtiene o establece el tipo de intercalación de lenguaje que se debe usar al clasificar los resultados. Consulte la sección Intercalación de esta página para obtener más información.

Comment

Obtiene o establece el comentario para la operación. Consulta los campos del comando de borrar para obtener más información.

Hint

Obtiene o establece el índice a utilizar para buscar documentos. Consulta las instrucciones de borrar para más información.

Let

Obtiene o establece el documento let. Consulta los campos del comando borrar para obtener más información.

Para configurar la intercalación para tu operación, crea una instancia de la clase intercalación.

La siguiente tabla describe los parámetros que acepta el constructor Collation. También enumera la propiedad de clase correspondiente que se puede usar para leer el valor de cada configuración.

Parameter
Descripción
Propiedad de clase

locale

Especifica la configuración regional de Componentes Internacionales para Unicode (ICU). Para obtener una lista de las configuraciones regionales compatibles, consulte Configuraciones regionales de intercalación y parámetros predeterminados en el Manual del servidor MongoDB.

Si desea utilizar una comparación binaria simple, utilice la Collation.Simple propiedad estática para devolver un Collation objeto con establecido locale "simple"en.
Tipo de datos: string

Locale

caseLevel

(Opcional) Especifica si se debe incluir la comparación de mayúsculas y minúsculas.

Cuando este argumento true es, el comportamiento del controlador depende del valor del strength argumento:

- Si strength CollationStrength.Primaryes, el controlador compara caracteres base y mayúsculas y minúsculas.
- Si strength CollationStrength.Secondaryes, el controlador compara caracteres base, diacríticos, otras diferencias secundarias y mayúsculas y minúsculas.
- Si strength es cualquier otro valor, este argumento se ignora.

Cuando este argumento false es, el controlador no incluye la comparación de mayúsculas y minúsculas en el nivel Primary de fuerza Secondary o.

Tipo boolean
de datos: Predeterminado: false

CaseLevel

caseFirst

(Opcional) Especifica el orden de clasificación de las diferencias de mayúsculas y minúsculas durante las comparaciones de nivel terciario.

Tipo de datos: CollationCaseFirst
Valor predeterminado: CollationCaseFirst.Off

CaseFirst

strength

(Opcional) Especifica el nivel de comparación a realizar, tal como se define en la documentación de la UCI.

Tipo de datos: CollationStrength
Valor predeterminado: CollationStrength.Tertiary

Strength

numericOrdering

(Opcional) Especifica si el controlador compara las cadenas numéricas como números.

Si este argumento true es, el controlador compara las cadenas numéricas como números. Por ejemplo, al comparar las cadenas "10" y "2", el controlador trata los valores como 10 2y, y encuentra 10 que es mayor.

Si este argumento es false o se excluye, el controlador compara las cadenas numéricas como cadenas. Por ejemplo, al comparar las cadenas "10" y "2", el controlador compara un carácter a la vez. Como "1" es menor que "2", el controlador encuentra10que " " es menor que "2".

Para obtener más información, consulte Restricciones de intercalación en el manual del servidor MongoDB.

Tipo de datos: boolean
Predeterminado: false

NumericOrdering

alternate

(Opcional) Especifica si el controlador considera los espacios en blanco y la puntuación como caracteres base para fines de comparación.

Tipo de datos: CollationAlternate
Valor predeterminado: CollationAlternate.NonIgnorable (los espacios y la puntuación se consideran caracteres base)

Alternate

maxVariable

(Opcional) Especifica qué caracteres considera el controlador como ignorables cuando el alternate argumento CollationAlternate.Shifted es.

Tipo de datos: CollationMaxVariable
Valor predeterminado: CollationMaxVariable.Punctuation (el controlador ignora la puntuación y los espacios)

MaxVariable

normalization

(Opcional) Especifica si el controlador normaliza el texto según sea necesario.

La mayoría del texto no requiere normalización. Para obtener más información sobre la normalización, consulte la documentación de ICU.

Tipo de datos: boolean
Predeterminado: false

Normalization

backwards

(Opcional) Especifica si las cadenas que contienen diacríticos se ordenan desde el final de la cadena hacia el principio.

Tipo de datos: boolean
Valor predeterminado: false

Backwards

Más información sobre la intercalación en la página Intercalación en el manual de MongoDB Server.

El siguiente código usa el método DeleteMany() para buscar en el índice "borough_1" y borrar todos los documentos donde el valor del campo address.street incluya 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 el ejemplo anterior utilizara el método DeleteOne() en lugar de DeleteMany(), el driver borrarí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 el resultado se reconoce. Si el filtro de query no coincide con ningún documento, no se borrarán documentos y DeletedCount será 0.

Para ejemplos ejecutables de las operaciones de eliminación, consulta 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: