MongoDB.local SF, Jan 15: See the speaker lineup & ship your AI vision faster. Use WEB50 to save 50%
Find out more >
Menu Docs
Página inicial do 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-to-BSON, consulte a bson documentação da API.

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 seguinte serializa uma classe personalizada utilizando o método vars() e então insere o objeto serializado em uma collection. 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 documentos em uma collection, consulte o guia Inserir documentos .

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.

Voltar

Extended JSON

Nesta página