Skip to main content
Build Status Latest Version

Documentation: #TODO

Ognom is object-to-document mapper for mongodb. Currently ognom uses pymongo as default backend, but you can easily implement your own backend based on another driver (for example asyncio-mongo) if needed, as serialization and storage logic in ognom are separated.

Supports python2.7+, python3.3+, PyPy.

Documentation: #TODO

Install

pip install ognom

Tests

tox

Features

  • Vanilla python, no dependencies;

  • From version 1.0 exposes full pymongo API(!);

  • Easy to write your own backend with your own API.

Quickstart

from ognom.base import ConnectionManager, Document, Collection
from ognom.fields import StringField, IntField

ConnectionManager.connect({
    'main': {  # ognom use aliases for databases to make it possible to use multiple db's per project
        'name': 'birzha_main',
        'args': ['127.0.0.1:27017'],
        'kwargs': {'socketTimeoutMS': 60000}},})


class Foo(Document):
    objects = Collection(
        db_name='main'
        collection_name='my_foos'  # collection name (by default 'foos')
        indexes=[{
            'index': [('bar', 1), ('baz', -1)],
            'background': True}])

    bar = StringField(required=True, default='baaar')
    baz = IntField(choices=[10, 20, 30, 40, 50])


foo1 = Foo.objects.create({'bar': 'lalala'})
assert Foo.objects.get({'bar': 'lalala'}).id == foo1.id

foo2 = Foo(bar='lololo', baz=10)
assert foo2.id is None
foo2.save()
assert foo2.id is not None
foo2.remove()

foos = Foo.objects.find({'bar': 'lalala'})  # not list but CursorWrapper!
assert len(list(foos)) == 1

Contributors

Metadata

Release files for ognom 0.5.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ognom 0.5.4
File Size Uploaded
ognom-0.5.4.tar.gz 16.2 kB Details

Release files / ognom-0.5.4.tar.gz

Download URL ognom-0.5.4.tar.gz
Size 16.2 kB
Tags Source
SHA-256 checksum
How to use checksums
f6191a1355e5da53514b278f5e9281639792d8d00de0e05dd0f9d11ba0381eed
BLAKE2b-256 checksum
How to use checksums
800e864702bd6ff08fccfc96099b7a2e65543b14eabddef820ede902cd408afe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.5.4 This release

1 release file

0.5.3

1 release file

0.5.1

1 release file

0.4.1

1 release file

0.3.1

1 release file

0.1.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page