Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
MongoDB Branding Shape
Click here >
Menu Docs

Serialização

Neste guia, você pode aprender como usar o PyMongo para serializar seus tipos personalizados.

Serialização é o processo de mapeamento de um objeto Python para um documento BSON para armazenamento no MongoDB. O PyMongo converte automaticamente tipos básicos do Python em BSON quando você insere um documento em uma coleção. Da mesma forma, quando você recupera um documento de uma coleção, o PyMongo converte automaticamente o BSON retornado de volta nos tipos correspondentes do Python.

Para obter uma lista completa de mapeamentos Python para BSON, consulte a documentação da API bson.

Para serializar e desserializar classes Python personalizadas, você deve implementar lógica personalizada para lidar com a conversão. As seções a seguir mostram como serializar e desserializar classes personalizadas.

Para serializar uma classe personalizada, você deve converter a classe em um dicionário. O exemplo a seguir serializa uma classe personalizada usando o método vars() e, em seguida, insere o objeto serializado em uma coleção. Selecione a aba Synchronous ou Asynchronous para ver o código correspondente:

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)

O exemplo anterior serializa o objeto Restaurant no seguinte dicionário:

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

Para saber mais sobre como inserir documento em uma collection, consulte o guia Inserir documento .

Para desserializar uma classe personalizada, você deve converter o dicionário de volta para uma instância da classe. O exemplo a seguir recupera um documento de uma coleção e, em seguida, converte-o novamente em um objeto Restaurant do exemplo anterior. Selecione a aba Synchronous ou Asynchronous para ver o código correspondente:

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 saber mais sobre como recuperar documentos de uma coleção, consulte o guia Localizar documentos.