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 usar la librería MongoDB para PHP para eliminar documentos de una colección de MongoDB realizando operaciones de eliminación.

Una operación de borrado remueve uno o más documentos de una colección de MongoDB. Puedes realizar una operación de eliminación utilizando los métodos MongoDB\Collection::deleteOne() o MongoDB\Collection::deleteMany().

The examples in this guide use the restaurants collection in the sample_restaurants database from the Atlas sample datasets. To access this collection from your PHP application, instantiate a MongoDB\Client that connects to an Atlas cluster and assign the following value to your $collection variable:

$collection = $client->sample_restaurants->restaurants;

Para aprender a crear una implementación gratuita de MongoDB y cargar los conjuntos de datos de muestra, consulta la guía Introducción de MongoDB.

Puede realizar operaciones de eliminación utilizando los siguientes métodos:

  • MongoDB\Collection::deleteOne()que elimina el primer documento que coincida con los criterios de búsqueda

  • MongoDB\Collection::deleteMany(), que borra todos los documentos que cumplen con los criterios de búsqueda

Cada método de eliminación requiere un documento de filtro de query, que especifica los criterios de búsqueda para determinar qué documentos seleccionar para su eliminación. Para obtener más información sobre los filtros de query, consulta la sección Documentos de Filtros de Query en el manual del MongoDB Server.

El siguiente ejemplo usa el método deleteOne() para remover un documento en la colección restaurants que tiene un valor name de 'Ready Penny Inn':

$collection->deleteOne(['name' => 'Ready Penny Inn']);

El siguiente ejemplo utiliza el método deleteMany() para remover todos los documentos en la colección restaurants que tienen un valor borough de 'Brooklyn':

$collection->deleteMany(['borough' => 'Brooklyn']);

Puedes modificar el comportamiento de los métodos MongoDB\Collection::deleteOne() y MongoDB\Collection::deleteMany() pasando un arreglo que especifique los valores de opciones como parámetro. La siguiente tabla describe las opciones que puedes establecer en el arreglo:

Opción
Descripción

collation

Especifica el tipo de intercalación de lenguaje que se utilizará al comparar cadenas. Para obtener más información, consulte la sección de Intercalación de esta página.

writeConcern

Establece el nivel de confianza de escritura para la operación. Esta opción utiliza de forma predeterminada el nivel de confianza de escritura de la colección. Para obtener más información, consulte la sección "Nivel de confianza de escritura" en el manual del servidor MongoDB.

hint

Obtiene o establece el índice que se va a analizar en busca de documentos. Para obtener más información,consulte la instrucción de sugerencia en el manual del servidor MongoDB.

let

Especifica un documento con una lista de valores para mejorar la legibilidad de la operación. Los valores deben ser constantes o expresiones cerradas que no hagan referencia a campos del documento. Para obtener más información, consulte la instrucción `let` en el manual del servidor MongoDB.

session

Especifica la sesión del cliente que se asociará a la operación. Para obtener más información, consulte la sección Sesión en el manual del servidor MongoDB.

comment

Attaches a comment to the operation. For more information, see the delete command fields guide in the MongoDB Server manual.

Para especificar una intercalación para tu operación, pasa un parámetro arreglo $options que establezca la opción collation en el método de la operación. Asigna la opción collation a un arreglo que configure las reglas de intercalación.

La siguiente tabla describe los campos que se pueden configurar para la intercalación:

Campo
Descripción

locale

(Obligatorio) 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.

Tipo de datos: string

caseLevel

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

Cuando se establece en true, el comportamiento de comparación depende del valor del campo strength:

- Si strength es 1, la librería PHP compara los caracteres base
y las mayúsculas y minúsculas.

- Si strength es 2, la librería PHP compara los caracteres base,
los signos diacríticos, otras diferencias secundarias y las mayúsculas y minúsculas.

- Si strength es cualquier otro valor, este campo se ignora.

Cuando se establece en false, la librería PHP no incluye la comparación de mayúsculas y minúsculas en el nivel de intensidad 1 o 2.

Tipo de dato: bool
Por defecto: false

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 dato: string
Por defecto: "off"

strength

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

Tipo de datos: int
Valor predeterminado: 3

numericOrdering

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

Si true se establece en, la biblioteca PHP compara las cadenas numéricas como números. Por ejemplo, al comparar las cadenas ""10y2 "", la biblioteca utiliza los valores numéricos de las cadenas y trata10 "" como mayor que2 "".

Si false se establece en, la biblioteca PHP compara las cadenas numéricas como cadenas. Por ejemplo, al comparar las cadenas10 "" y2 "", la biblioteca compara un carácter a la vez y trata10 "" como menor que2 "".

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

Tipo de datos: bool
Predeterminado: false

alternate

(Opcional) Especifica si la librería considera los espacios en blanco y la puntuación como caracteres base a los efectos de la comparación.

Tipo de dato: string
Por defecto: "non-ignorable"

maxVariable

(Opcional) Especifica qué caracteres considera la librería ignorables cuando el campo alternate se establece en "shifted".

Tipo de dato: string
Por defecto: "punct"

backwards

(Opcional) Especifica si las strings que contienen diacríticos se ordenan de atrás hacia adelante en la string.

Tipo de dato: bool
Por defecto: false

Para obtener más información sobre la intercalación y los posibles valores de cada campo, consulta la entrada Collation en el manual del servidor de MongoDB.

El siguiente ejemplo llama al método deleteMany() para borrar todos los documentos en la colección restaurants que tengan un valor name que contenga la string 'Mongo'. También establece la opción comment en un parámetro de arreglo para añadir un comentario a la operación:

$collection->deleteMany(
['name' => new MongoDB\BSON\Regex('Mongo')],
['comment' => 'Deleting Mongo restaurants'],
);

Nota

Si sustituyes el método deleteMany() por deleteOne() en el ejemplo anterior, la librería borra sólo el primer documento que tiene un valor name que contiene 'Mongo'.

Los métodos MongoDB\Collection::deleteOne() y MongoDB\Collection::deleteMany() devuelven un objeto MongoDB\DeleteResult. Esta clase contiene las siguientes funciones miembro:

  • isAcknowledged()que devuelve un valor booleano que indica si la operación fue reconocida.

  • getDeletedCount()), que devuelve el número de documentos eliminados. Si no se reconoció la operación de guardado, este método arroja un error.

Si el filtro de query no coincide con ningún documentos, el driver no borra ningún documentos y getDeletedCount() devuelve 0.

El siguiente ejemplo llama al método deleteMany() para eliminar documentos que tienen un valor de cuisine de 'Greek'. Luego, llama a la función nodo getDeletedCount() para imprimir el número de documentos eliminados:

$result = $collection->deleteMany(['cuisine' => 'Greek']);
echo 'Deleted documents: ', $result->getDeletedCount(), PHP_EOL;

Para aprender más sobre cualquiera de los métodos o tipos analizados en esta guía, consulta la siguiente documentación de API: