diff --git a/docs/configuration/databases/beanie.md b/docs/configuration/databases/beanie.md index fac5086c..5215cfc1 100644 --- a/docs/configuration/databases/beanie.md +++ b/docs/configuration/databases/beanie.md @@ -22,23 +22,6 @@ As for any Beanie ODM model, we'll create a `User` model. As you can see, **FastAPI Users** provides a base class that will include base fields for our `User` table. You can of course add you own fields there to fit to your needs! -!!! tip "Document ID is a MongoDB ObjectID" - Beanie [automatically manages document ID](https://roman-right.github.io/beanie/tutorial/defining-a-document/#id) by encoding/decoding MongoDB ObjectID. - - If you want to use another type, like UUID, you can override the `id` field: - - ```py - import uuid - - from pydantic import Field - - - class User(BeanieBaseUser[uuid.UUID]): - id: uuid.UUID = Field(default_factory=uuid.uuid4) - ``` - - Notice that `BeanieBaseUser` expects a generic type to define the actual type of ID you use. - !!! info The base class is configured to automatically create a [unique index](https://roman-right.github.io/beanie/tutorial/defining-a-document/#indexes) on `id` and `email`. diff --git a/docs/src/db_beanie.py b/docs/src/db_beanie.py index 58accc17..fbe716e6 100644 --- a/docs/src/db_beanie.py +++ b/docs/src/db_beanie.py @@ -1,5 +1,5 @@ import motor.motor_asyncio -from beanie import PydanticObjectId +from beanie import Document from fastapi_users.db import BeanieBaseUser, BeanieUserDatabase DATABASE_URL = "mongodb://localhost:27017" @@ -9,7 +9,7 @@ client = motor.motor_asyncio.AsyncIOMotorClient( db = client["database_name"] -class User(BeanieBaseUser[PydanticObjectId]): +class User(BeanieBaseUser, Document): pass diff --git a/docs/src/db_beanie_access_tokens.py b/docs/src/db_beanie_access_tokens.py index 098f7432..e05b9b5a 100644 --- a/docs/src/db_beanie_access_tokens.py +++ b/docs/src/db_beanie_access_tokens.py @@ -1,5 +1,5 @@ import motor.motor_asyncio -from beanie import PydanticObjectId +from beanie import Document from fastapi_users.db import BeanieBaseUser, BeanieUserDatabase from fastapi_users_db_beanie.access_token import ( BeanieAccessTokenDatabase, @@ -13,11 +13,11 @@ client = motor.motor_asyncio.AsyncIOMotorClient( db = client["database_name"] -class User(BeanieBaseUser): +class User(BeanieBaseUser, Document): pass -class AccessToken(BeanieBaseAccessToken[PydanticObjectId]): # (1)! +class AccessToken(BeanieBaseAccessToken, Document): # (1)! pass diff --git a/docs/src/db_beanie_oauth.py b/docs/src/db_beanie_oauth.py index b92dca43..e7179a6d 100644 --- a/docs/src/db_beanie_oauth.py +++ b/docs/src/db_beanie_oauth.py @@ -1,7 +1,7 @@ from typing import List import motor.motor_asyncio -from beanie import PydanticObjectId +from beanie import Document from fastapi_users.db import BaseOAuthAccount, BeanieBaseUser, BeanieUserDatabase from pydantic import Field @@ -16,7 +16,7 @@ class OAuthAccount(BaseOAuthAccount): pass -class User(BeanieBaseUser[PydanticObjectId]): +class User(BeanieBaseUser, Document): oauth_accounts: List[OAuthAccount] = Field(default_factory=list) diff --git a/examples/beanie-oauth/app/db.py b/examples/beanie-oauth/app/db.py index b92dca43..e7179a6d 100644 --- a/examples/beanie-oauth/app/db.py +++ b/examples/beanie-oauth/app/db.py @@ -1,7 +1,7 @@ from typing import List import motor.motor_asyncio -from beanie import PydanticObjectId +from beanie import Document from fastapi_users.db import BaseOAuthAccount, BeanieBaseUser, BeanieUserDatabase from pydantic import Field @@ -16,7 +16,7 @@ class OAuthAccount(BaseOAuthAccount): pass -class User(BeanieBaseUser[PydanticObjectId]): +class User(BeanieBaseUser, Document): oauth_accounts: List[OAuthAccount] = Field(default_factory=list) diff --git a/examples/beanie/app/db.py b/examples/beanie/app/db.py index 58accc17..fbe716e6 100644 --- a/examples/beanie/app/db.py +++ b/examples/beanie/app/db.py @@ -1,5 +1,5 @@ import motor.motor_asyncio -from beanie import PydanticObjectId +from beanie import Document from fastapi_users.db import BeanieBaseUser, BeanieUserDatabase DATABASE_URL = "mongodb://localhost:27017" @@ -9,7 +9,7 @@ client = motor.motor_asyncio.AsyncIOMotorClient( db = client["database_name"] -class User(BeanieBaseUser[PydanticObjectId]): +class User(BeanieBaseUser, Document): pass