Documentos incorporados¶
Documentos incorporados são documentos que são incorporados no mongoz.Document
. A diferença entre um e
outro é que o EmbeddedDocument
não é inserido separadamente e não possui um _id
separado.
Para definir um EmbeddedDocument
, deve herdar de mongoz.EmbeddedDocument
e definir os
campos da mesma forma que definiria para qualquer outro mongoz.Document
.
from typing import List
import mongoz
from mongoz import Document, EmbeddedDocument
database_uri = "mongodb://localhost:27017"
registry = mongoz.Registry(database_uri)
class Award(EmbeddedDocument):
name: str = mongoz.String()
class Crew(EmbeddedDocument):
award: Award = mongoz.Embed(Award)
name: str = mongoz.String()
class Actor(EmbeddedDocument):
name: str = mongoz.String()
class Genre(EmbeddedDocument):
title: str = mongoz.String()
class Movie(Document):
actors: List[Actor] = mongoz.Array(Actor)
name: str = mongoz.String()
director: Crew = mongoz.Embed(Crew)
genre: Genre = mongoz.Embed(Genre)
year: int = mongoz.Integer()
class Meta:
registry = registry
database = "my_db"
Como pode ver, o EmbeddedDocument
não é um documento independente em si, mas parte do
documento ao declarar.
Um EmbeddedDocument
pode ser usado dentro de outro e, portanto, criar uma declaração nested
ao guardar os resultados.