Definición
MongoDB\Collection::deleteOne()Elimina como máximo un documento que coincida con los criterios del filtro. Si varios documentos coinciden con los criterios de filtro, solo el Se borrará el primer documento encontrado.
function deleteOne( array|object $filter, array $options = [] ): MongoDB\DeleteResult
Parámetros
$filter: arreglo|objeto- El criterio de filtro que especifica los documentos a borrar.
$options: arregloUn arreglo que especifica las opciones deseadas.
NombreTipoDescripciónintercalación
arreglo|objeto
Intercalación permite a los usuarios especificar reglas específicas del lenguaje para la comparación de cadenas, tales como reglas para mayúsculas y tildes. Al especificar la intercalación, el campo
localees obligatorio; todos los demás campos de intercalación son opcionales. Para obtener descripciones de los campos, consulte Documento de intercalación.Si la intercalación no está especificada pero la colección tiene una intercalación predeterminada, la operación utiliza la intercalación especificada para la colección. Si no se especifica una intercalación para la colección o para la operación, MongoDB utiliza la comparación binaria simple utilizada en versiones anteriores para comparar cadenas.
comment
mixto
Permite a los usuarios especificar un comentario arbitrario para ayudar a rastrear la operación a través del perfilador de bases de datos, la salida actualOp() y registros.
Esta opción está disponible desde MongoDB 4.4 y, si se especifica para una versión de servidor anterior, dará lugar a una excepción en tiempo de ejecución.
Novedades en la versión 1.13.
hint
cadena|arreglo|objeto
El índice a utilizar. Especifique el nombre del índice como una string o el patrón clave del índice como un documento. Si se especifica, el sistema de query solo considerará los planes que utilicen el índice sugerido.
Esta opción está disponible desde MongoDB 4.4 y, si se especifica para una versión de servidor anterior, dará lugar a una excepción en tiempo de ejecución.
Novedad en la versión 1.7.
permitir
arreglo|objeto
Mapa de nombres de parámetros y valores. Los valores deben ser expresiones constantes o cerradas que no hagan referencia a los campos del documento. Posteriormente, se puede acceder a los parámetros como variables en el contexto de una expresión de agregación (por ejemplo,
$$var).Esto no está soportado para versiones del servidor anteriores a la 5.0 y resultará en una excepción en el momento de la ejecución si se usa.
Novedades en la versión 1.13.
sesión
Sesión de cliente para asociar con la operación.
Nueva en la versión 1.3.
writeConcern
nivel de confirmación de escritura (write concern) a usar en la operación. Por defecto, se aplica el nivel de confirmación de escritura (write concern) de la colección.
No es posible especificar un nivel de confirmación de escritura (write concern) para operaciones individuales como parte de una transacción. En su lugar, configura la opción
writeConcernal iniciar la transacción.
Return Values
A MongoDB\DeleteResult objeto, which encapsulates a MongoDB\Driver\WriteResult objeto.
Errores/Excepciones
MongoDB\Exception\UnsupportedException si se usan opciones que no sean compatibles con el servidor seleccionado (p. ej. collation, readConcern, writeConcern).
MongoDB\Exception\InvalidArgumentException por errores relacionados con el análisis de parámetros u opciones.
MongoDB\Driver\Exception\BulkWriteException para errores relacionados con la operación de escritura. Los usuarios deben inspeccionar el valor devuelto por getWriteResult() para determinar la naturaleza del error.
MongoDB\Driver\Exception\RuntimeException para otros errores a nivel de extensión (por ejemplo, " errores de conexión).
Comportamiento
Al evaluar los criterios de búsqueda, MongoDB compara tipos y valores según sus propias reglas de comparación para tipos BSON, que difieren de las reglas de comparación y manejo de tipos de PHP. Cuando se coincida con un tipo BSON especial, los criterios de consulta deben utilizar la Clase BSON respectiva en la extensión (por ejemplo, usa MongoDB\BSON\ObjectId para hacer coincidir con un ObjectId.
Si se lanza un MongoDB\Driver\Exception\BulkWriteException, los usuarios deben llamar a getWriteResult() e inspeccionar el MongoDB\Driver\WriteResult objeto retornado para determinar la naturaleza del error.
Por ejemplo, una operación de escritura puede haberse aplicado correctamente al servidor principal, pero no haber satisfecho el nivel de confirmación de escritura (write concern) (por ejemplo, la replicación tomó demasiado tiempo). Como alternativa, puede que una operación de guardar haya fallado por completo (por ejemplo, violación de clave única).
Ejemplo
El siguiente ejemplo elimina un documento de la colección users que tiene "ny" como valor para el campo state:
$collection = (new MongoDB\Client)->test->users; $collection->drop(); $collection->insertOne(['name' => 'Bob', 'state' => 'ny']); $collection->insertOne(['name' => 'Alice', 'state' => 'ny']); $deleteResult = $collection->deleteOne(['state' => 'ny']); printf("Deleted %d document(s)\n", $deleteResult->getDeletedCount());
La vista de salida se ilustraría como sigue:
Deleted 1 document(s)
Ver también
Referencia del comando borrar en el manual de MongoDB