MongoDB Eliminar documentos

En los capítulos anteriores hemos aprendido cómo agregar y actualizar datos a colecciones en MongoDB. En este capítulo continuaremos aprendiendo sobre la eliminación de colecciones en MongoDB.

Los métodos comunes para eliminar documentos incluyen deleteOne(), deleteMany() y findOneAndDelete().

Escenarios de uso:

  • Limpieza de datos: eliminar datos antiguos o no válidos que ya no se necesitan.
  • Corrección de datos: eliminar documentos erróneos o duplicados durante el proceso de corrección de datos.
  • Tareas automatizadas: eliminar documentos según condiciones específicas en scripts o tareas automatizadas.

1、deleteOne()

El método deleteOne() se utiliza para eliminar un solo documento que coincida con el filtro.

Sintaxis:

db.collection.deleteOne(filter, options)
  • filter: condición de consulta para encontrar el documento a eliminar.
  • options(Opcional): un objeto de parámetros opcional.

Ejemplo

db.myCollection.deleteOne({ name: "Alice" });

Resultado devuelto:

{
    "acknowledged": true,
    "deletedCount": 1
}

2、deleteMany()

El método deleteMany() se utiliza para eliminar todos los documentos que coincidan con el filtro.

Sintaxis:

db.collection.deleteMany(filter, options)
  • filter: condición de consulta para encontrar los documentos a eliminar.
  • options(Opcional): un objeto de parámetros opcional.

Ejemplo

db.myCollection.deleteMany({ status: "inactive" });

Resultado devuelto:

{
    "acknowledged": true,
    "deletedCount": 1
}

3、findOneAndDelete()

El método findOneAndDelete() se utiliza para buscar y eliminar un solo documento, y opcionalmente puede devolver el documento eliminado.

Sintaxis:

db.collection.findOneAndDelete(filter, options)
  • filter: condición de consulta para encontrar el documento a eliminar.
  • options: objeto de parámetros opcional, comoprojection、sortetc.

Ejemplo

db.myCollection.findOneAndDelete(
    { name: "Charlie" },
    { projection: { name: 1, age: 1 } }
);

findOneAndDelete devuelve el documento eliminado; si no se encuentra un documento que coincida, devuelve null.

Opciones de la operación de eliminación

El parámetro options de estos métodos de eliminación generalmente puede incluir las siguientes opciones:

  • writeConcern: especifica el nivel de confirmación para la operación de escritura.
  • collation: especifica la regla de ordenación utilizada al comparar cadenas.
  • projection(Solo aplicable afindOneAndDelete): especifica los campos a devolver.
  • sort(Solo aplicable afindOneAndDelete): especifica el orden de clasificación para determinar el documento a eliminar.

Ejemplo

Eliminar un solo documento:

db.myCollection.deleteOne({ name: "Alice" });

Eliminar varios documentos:

db.myCollection.deleteMany({ status: "inactive" });

Buscar y eliminar un solo documento:

db.myCollection.findOneAndDelete(
    { name: "Charlie" },
    { projection: { name: 1, age: 1 } }
);
Otras extensiones