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.
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Docs Menu

Serialización

En esta guía se puede aprender cómo utilizar PyMongo para serializar tipos personalizados.

La serialización es el proceso de mapear un objeto de Python a un documento BSON para su almacenamiento en MongoDB. PyMongo convierte automáticamente los tipos básicos de Python en BSON cuando insertas un documento en una colección. De manera similar, cuando recuperas un documento de una colección, PyMongo convierte automáticamente el BSON devuelto de nuevo en los tipos de Python correspondientes.

Para obtener una lista completa de mapeos de Python a BSON, consulta la documentación de la API de bson.

Para serializar y deserializar clases personalizadas de Python, debes implementar una lógica personalizada para gestionar la conversión. Las siguientes secciones muestran cómo serializar y deserializar clases personalizadas.

Para serializar una clase personalizada, debes convertir la clase en un diccionario. El siguiente ejemplo serializa una clase personalizada utilizando el método vars() y luego inserta el objeto serializado en una colección. Selecciona la pestaña Synchronous o Asynchronous para ver el código correspondiente:

class Restaurant:
def __init__(self, name, cuisine):
self.name = name
self.cuisine = cuisine
restaurant = Restaurant("Example Cafe", "Coffee")
restaurant_dict = vars(restaurant)
collection.insert_one(restaurant_dict)
class Restaurant:
def __init__(self, name, cuisine):
self.name = name
self.cuisine = cuisine
restaurant = Restaurant("Example Cafe", "Coffee")
restaurant_dict = vars(restaurant)
await collection.insert_one(restaurant_dict)

El ejemplo anterior serializa el objeto Restaurant en el siguiente diccionario:

{'name': 'Example Cafe', 'cuisine': 'Coffee'}

Para obtener más información sobre cómo insertar documentos en una colección, consulte la guía Insertar documentos.

Para deserializar una clase personalizada, hay que convertir el diccionario nuevamente en una instancia de la clase. El siguiente ejemplo recupera un documento de una colección y luego lo convierte nuevamente en un objeto Restaurant del ejemplo anterior. Selecciona la pestaña Synchronous o Asynchronous para ver el código correspondiente:

def deserialize_restaurant(doc):
return Restaurant(name=doc["name"], cuisine=doc["cuisine"])
restaurant_doc = collection.find_one({"name": "Example Cafe"})
restaurant = deserialize_restaurant(restaurant_doc)
def deserialize_restaurant(doc):
return Restaurant(name=doc["name"], cuisine=doc["cuisine"])
restaurant_doc = await collection.find_one({"name": "Example Cafe"})
restaurant = deserialize_restaurant(restaurant_doc)

Para obtener más información sobre cómo recuperar documentos de una colección, consulte la guía Buscar documentos.