Python library async ORM for mongodb. Object as pyDantic
Project description
Aio Mongo Pydantic ORM (ampo)
Features:
- Asynchronous
Usage
All example run into:
python -m asyncio
Create and get object
from ampo import CollectionWorker, AMPODatabase, ORMConfig, init_collection
# Initilize DB before calls db methods
AMPODatabase(url="mongodb://test")
# Pydantic Model
class ModelA(CollectionWorker):
field1: str
field2: int
model_config = ORMConfig(
orm_collection="test"
)
await init_collection()
inst_a = ModelA("test", 123)
await inst_a.save()
# Get object
inst_a = await ModelA.get(field1="test")
Id
For search by 'id' usages in filter '_id' or 'id' name.
Indexes
# import
# Initilize DB before calls db methods
AMPODatabase(url="mongodb://test")
# Pydantic Model
class ModelA(CollectionWorker):
field1: str
model_config = ORMConfig(
orm_collection="test",
orm_indexes=[
{
"keys": ["field1"],
"options": {
"unique": True
}
}
]
)
# This method create indexes
# Call only one time
await init_collection()
Suppport options:
- unique
- expireAfterSeconds
Keys is list of fields.
Development
Style:
Run tests:
env TEST_MONGO_URL=mongodb://localhost/test pytest
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
ampo-0.1.0.tar.gz
(4.2 kB
view hashes)
Built Distribution
ampo-0.1.0-py3-none-any.whl
(4.2 kB
view hashes)