Skip to content

Fields

bunnet.odm.fields

Indexed

def Indexed(typ=None, index_type=ASCENDING, **kwargs)

If typ is defined, returns a subclass of typ with an extra attribute _indexed as a tuple: - Index 0: index_type such as pymongo.ASCENDING - Index 1: kwargs passed to IndexModel When instantiated the type of the result will actually be typ.

When typ is not defined, returns an IndexedAnnotation instance, to be used as metadata in Annotated fields.

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.

ExpressionField

class ExpressionField(str)

ExpressionField.__getitem__

def __getitem__(item)

Get sub field

Arguments:

  • item: name of the subfield

Returns:

ExpressionField

ExpressionField.__getattr__

def __getattr__(item)

Get sub field

Arguments:

  • item: name of the subfield

Returns:

ExpressionField

LinkInfo

class LinkInfo(BaseModel)

LinkInfo.document_class

Document class

class Link(Generic[T])

Link.fetch_list

@classmethod
def fetch_list(cls,
               links: List[Union["Link", "DocType"]],
               fetch_links: bool = False)

Fetch list that contains links and documents

Arguments:

  • links:
  • fetch_links:

class BackLink(Generic[T])

Back reference to a document