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
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
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, como
projection、sortetc.
Ejemplo
{ 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 a
findOneAndDelete): especifica los campos a devolver. - sort(Solo aplicable a
findOneAndDelete): 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