Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

MongoDB\Collection::replaceOne()

MongoDB\Collection::replaceOne()

Reemplaza como máximo un documento que coincida con los criterios de filtro. Si múltiples documentos coinciden con los criterios de filtro, solo el el primer documento coincidente será reemplazado.

function replaceOne(
array|object $filter,
array|object $replacement,
array $options = []
): MongoDB\UpdateResult
$filter : arreglo|objeto
Los criterios de filtro que especifican los documentos que se deben reemplazar.
$replacement : arreglo|objeto
El documento de reemplazo.
$options : arreglo

Una matriz que especifica las opciones deseadas.

Nombre
Tipo
Descripción

bypassDocumentValidation

booleano

Si es true, permite que la operación de escritura evite la validación a nivel de documento. El valor predeterminado es false.

códec

MongoDB\Codec\DocumentCodec

La Codificar datos con códecs de tipo para codificar o decodificar documentos. Esta opción es mutuamente excluyente con la typeMap opción.

El valor predeterminado es el códec de la colección. La herencia de la opción predeterminada codec prevalece sobre la de la opción typeMap.

Novedad en la versión 1.17.

intercalación

arreglo|objeto

Laintercalación permite a los usuarios especificar reglas específicas del idioma para la comparación de cadenas, como el uso de mayúsculas y minúsculas y tildes. Al especificar la intercalación, el locale campo es obligatorio; todos los demás campos son opcionales. Para obtener descripciones de los campos, consulte el 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 generador de perfiles de base de datos, la salidacurrentOp y los 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.6.

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 es compatible con versiones de servidor anteriores a 5.0 y, si se utiliza, generará una excepción en el momento de ejecución.

Novedades en la versión 1.13.

sesión

Sesión de cliente para asociar a la operación.

Nueva en la versión 1.3.

sort

arreglo|objeto

La especificación de ordenación para la organización de los documentos que coincide. Configura esta opción para aplicar un orden a los documentos coincidentes antes de que el servidor ejecute la operación de reemplazo.

Nuevo en la versión 1.21.

inserción

booleano

Si se configura en true, crea un nuevo documento cuando ningún documento coincide con los criterios de la query. El valor por defecto es false, que no inserta un nuevo documento cuando no se encuentra coincidencia.

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 una preocupación de escritura para operaciones individuales como parte de una transacción. En su lugar, configure la writeConcern opción al iniciar la transacción.

Un objeto MongoDB\UpdateResult, que encapsula un objeto MongoDB\Driver\WriteResult.

MongoDB\Exception\UnsupportedException si se utilizan opciones que no son compatibles con el servidor seleccionado (porcollation readConcernwriteConcernejemplo,,,).

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 en el nivel de extensión (por ejemplo, errores de conexión).

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 una MongoDB\Driver\Exception\BulkWriteException, los usuarios deben llamar a getWriteResult() e inspeccionar el objeto MongoDB\Driver\WriteResult devuelto para determinar la naturaleza del error.

Por ejemplo, es posible que una operación de escritura se haya ejecutado correctamente en el servidor principal, pero no haya solucionado el problema (p. ej., la replicación tardó demasiado). También es posible que una operación de escritura haya fallado por completo (p. ej., violación de clave única).

El siguiente ejemplo reemplaza el documento con restaurant_id de "40356068" en la colección restaurants en la base de datos test:

<?php
$collection = (new MongoDB\Client)->test->restaurants;
$updateResult = $collection->replaceOne(
[ 'restaurant_id' => '40356068' ],
[
'name' => 'New Restaurant',
'restaurant_id' => '99988877',
'borough' => 'Queens',
'cuisine' => 'Cafe',
'grades' => [],
]
);
printf("Matched %d document(s)\n", $updateResult->getMatchedCount());
printf("Modified %d document(s)\n", $updateResult->getModifiedCount());

La vista de salida se ilustraría como sigue:

Matched 1 document(s)
Modified 1 document(s)

Volver

renombrar()

En esta página