Skip to content

Asynchronous ODM (Object Document Mapper) for MongoDB

License

Notifications You must be signed in to change notification settings

maikomjames/bilu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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:

  • pydantic: makes data validation and schema definition both handy and elegant.

  • motor: an asyncio MongoDB driver officially developed by the MongoDB team.

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()

About

Asynchronous ODM (Object Document Mapper) for MongoDB

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages