Fields
beanie.odm.fields
Indexed
def Indexed(typ=None, index_type=ASCENDING, **kwargs: Any)
If
typis defined, returns a subclass oftypwith an extra attribute_indexedas a tuple: - Index 0:index_typesuch aspymongo.ASCENDING- Index 1:kwargspassed toIndexModelWhen instantiated the type of the result will actually betyp.When
typis not defined, returns anIndexedAnnotationinstance, to be used as metadata inAnnotatedfields.Example:
# Both fields would have the same behavior class MyModel(BaseModel): field1: Indexed(str, unique=True) field2: Annotated[str, Indexed(unique=True)]
PydanticObjectId
class PydanticObjectId(ObjectId)
Object Id field. Compatible with Pydantic.
PydanticObjectId.__get_pydantic_json_schema__
@classmethod
def __get_pydantic_json_schema__(
cls, schema: core_schema.CoreSchema,
handler: GetJsonSchemaHandler) -> JsonSchemaValue
Results such schema:
{ "components": { "schemas": { "Item": { "properties": { "id": { "$ref": "#/components/schemas/PydanticObjectId" } }, "type": "object", "title": "Item" }, "PydanticObjectId": { "type": "string", "maxLength": 24, "minLength": 24, "pattern": "^[0-9a-f]{24}$", "example": "5eb7cf5a86d9755df3a6c593" } } } }
FieldResolution
@dataclass(frozen=True)
class FieldResolution()
Immutable metadata attached to ExpressionField for query-time path resolution.
Tracks the nested model class (for alias resolution during field access) and whether the path crosses a Link/BackLink boundary (for DBRef translation at query time).
ExpressionField
class ExpressionField(str)
ExpressionField.__getitem__
def __getitem__(item)
Get sub field
Arguments:
item: name of the subfieldReturns:
ExpressionField
ExpressionField.__getattr__
def __getattr__(item)
Get sub field, resolving aliases from nested Pydantic models.
Alias resolution is performed through the model class carried in
_field_resolution. Theis_linkflag is propagated from parent to child so that downstream query code can translate DBRef paths at runtime.
LinkInfo
class LinkInfo(BaseModel)
LinkInfo.document_class
Document class
Link
class Link(Generic[T])
Link.fetch_list
@classmethod
async def fetch_list(cls,
links: list["Link[T] | DocType"],
fetch_links: bool = False)
Fetch list that contains links and documents
Arguments:
links:fetch_links:
BackLink
class BackLink(Generic[T])
Back reference to a document