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

Reemplazar Documentos

En esta guía, puedes aprender a usar PyMongo para realizar una operación de reemplazo en un documento dentro de una colección de MongoDB. Una operación de reemplazo se realiza de manera diferente a una operación de actualización. Una operación de actualización modifica únicamente los campos especificados en un documento de destino. Una operación de reemplazo remueve todos los campos del documento de destino y los reemplaza por otros nuevos.

Para obtener más información sobre las operaciones de actualización, consulta la Guía de actualización de documentos.

Los ejemplos en esta guía utilizan la colección sample_restaurants.restaurants de los conjuntos de datos de muestra de Atlas. Para aprender a crear un clúster gratuito de MongoDB Atlas y cargar los conjuntos de datos de muestra, consultar el tutorial Comenzar con PyMongo.

Puede realizar una operación de reemplazo en MongoDB utilizando el método replace_one(). Este método remueve todos los campos excepto el campo _id del primer documento que coincide con los criterios de búsqueda. Luego, inserta los campos y valores que especifiques en el documento.

El método replace_one() requiere los siguientes parámetros:

  • Un documento de filtro de query, que determina qué documentos reemplazar. Para obtener más información sobre los filtros de query, consulte la sección Documentos de filtros de query en el manual del MongoDB Server.

  • Un documento de reemplazo, que especifica los campos y valores a insertar en el nuevo documento.

El siguiente ejemplo utiliza el método replace_one() para el tipo de método para reemplazar los campos y valores de un documento con un campo name con el valor "Pizza Town":

restaurants = database["restaurants"]
query_filter = {"name" : "Pizza Town"}
replace_document = { "name" : "Mongo's Pizza",
"cuisine" : "Pizza",
"address" : {
"street" : "123 Pizza St",
"zipCode" : "10003"
},
"borough" : "Manhattan"
}
result = restaurants.replace_one(query_filter, replace_document)

Importante

Los valores de los campos _id son inmutables. Si tu documento de reemplazo especifica un valor para el campo _id, este debe coincidir con el valor _id del documento existente.

El método replace_one() admite opcionalmente parámetros adicionales, que representan opciones que puedes usar para configurar la operación de reemplazo. Si no especificas ninguna opción adicional, el controlador no personaliza la operación de reemplazo.

Propiedad
Descripción

upsert

Especifica si la operación de reemplazo realiza una operación inserción si ningún documentos coincide con el filtro de query. Para obtener más información, consulta la instrucción de inserción en el manual de MongoDB Server.
Se establece por defecto en False

bypass_document_validation

Especifica si la operación de reemplazo omite la validación del documento. Esto permite reemplazar documentos que no cumplen con los requisitos de validación del esquema, si los hubiera. Para obtener más información sobre la validación del esquema, consulte Validación de esquema en el manual del servidor MongoDB.
El valor predeterminado False es.

collation

Especifica el tipo de intercalación de lenguaje a usar al ordenar los resultados. Para obtener más información, consulte intercalación en el manual de MongoDB Server.

hint

Obtiene o define el índice para escanear documentos. Para obtener más información, consulta la instrucción de sugerencia en el manual del MongoDB Server.

session

Una instancia de ClientSession.

let

Un mapa de nombres y valores de parámetros. Los valores deben ser constantes o expresiones cerradas que no referencien los campos del documento. Para más información, vea la instrucción let en el manual de MongoDB Server.

comment

Un comentario que debe adjuntarse a la operación. Para obtener más información, consulta la guía de campos de inserción de comandos en el manual del MongoDB Server.

El siguiente código usa el método replace_one() para encontrar el primer documento donde el campo name tiene el valor "Food Town", luego reemplaza este documento con uno nuevo llamado "Food World". Dado que la opción upsert está configurada en True, el driver inserta un nuevo documento si el filtro de query no coincide con ninguno existente.

restaurants = database["restaurants"]
query_filter = {"name" : "Food Town"}
replace_document = { "name" : "Food World",
"cuisine" : "Mixed",
"address" : {
"street" : "123 Food St",
"zipCode" : "10003"
},
"borough" : "Manhattan"
}
result = restaurants.replace_one(query_filter, replace_document, upsert = True)

El método replace_one() devuelve un objeto UpdateResult. El tipo UpdateResult contiene las siguientes propiedades:

Propiedad
Descripción

matched_count

El número de documentos que coincidieron con el filtro de query, independientemente de cuántos se actualizaron.

modified_count

El número de documentos que han sido modificados durante la operación de actualización. Si un documento actualizado es idéntico al original, no se incluye en este recuento.

raw_result

El documento de resultado sin procesar devuelto por el servidor.

upserted_id

El ID del documento que se actualizó en la base de datos, si el driver realizó una inserción. De lo contrario, None.

Para obtener más información sobre cómo crear filtros de query, se puede consultar la Especificar una query.

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