bilu
Asynchronous ODM (Object Document Mapper) for MongoDB
Requirements
Python: 3.6 and later (tested against 3.6, 3.7, 3.8 and 3.9)
MongoDB: 4.0 and later
pydantic: 1.8.2 and later
Two direct dependencies:
Installation
pip install Bilu
Environments
export MONGODB_URI='mongodb://localhost:27017'
export MONGODB_USERNAME=''
export MONGODB_PASSWORD=''
export MONGODB_DATABASE='test'
export MONGODB_MIN_POOL_SIZE=0
export MONGODB_MAX_POOL_SIZE=100
Example
Connecting to mongodb
from bilu.database import db_manager
db_manager.connect()
Define model
from bilu.model import BaseModel
class TesteModel(BaseModel):
attr_str: str
attr_int: int
class Meta:
name = 'testemodel'
Creating a document
data = {
'attr_str': 'bla',
'attr_int': 123
}
model = TesteModel(**data)
await model.save()
Listing documents
await model.documents.list(attr_int=123)
Getting a document
item = await model.documents.get(attr_int=123)
Removing a document
await item.delete()