๐Ÿ“ฆ aminalaee / mongox

๐Ÿ“„ embedded_models.py ยท 38 lines
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38import asyncio

import mongox


client = mongox.Client(
    "mongodb://localhost:27017", get_event_loop=asyncio.get_running_loop
)
db = client.get_database("test_db")


class Genre(mongox.EmbeddedModel):
    name: str = mongox.Field(min_length=5)


class Movie(mongox.Model, db=db, collection="movies"):
    name: str
    genre: Genre


async def main():
    genre = Genre(name="Action")
    await Movie(name="Saving Private Ryan", genre=genre).insert()

    movie = await Movie.query(Movie.genre.name == "Action").get()

    print(movie)

    movie.genre.name = "History"
    movie = await movie.save()

    print(movie)

    await movie.delete()


asyncio.run(main())