Skip to main content

Minimal Python ODM for MongoDB

Project description

=========
nanomongo
=========

If you like using ``pymongo`` native api but often find yourself subclassing
``dict`` to add some extra logic and while you're at it, why not add some
field validations right? And index definitions, and ``pymongo.Collection``
wrappers, and ... (you get the idea).

.. image:: https://travis-ci.org/eguven/nanomongo.png
:target: https://travis-ci.org/eguven/nanomongo

Features
--------

- single format ``Field`` definitions with type checking and a few common
options such as ``required``, ``default``, ``auto_update``

- ``pymongo``-identical index definitions

- optional ``dot_notation``

- assignment and deletion (delta) tracking for ``'$set'`` and ``'$unset'``
and atomic updates; you either insert or update

- ``'$addToSet'`` on ``Document``

- *upcoming* ``'$push'`` ``'$pull'`` funtionality


# rough example
import pymongo
from nanomongo import Field, BaseDocument, Index

client = pymongo.MongoClient()

class MyDoc(BaseDocument, dot_notation=True, client=client, db='dbname'):
foo = Field(str)
bar = Field(int, required=False)

__indexes__ = [
Index('foo'),
Index([('bar', 1), ('foo', -1)], unique=True),
]

doc = MyDoc(foo='L33t')
doc.bar = 42
doc.insert()

Doc.find_one({'foo': 'L33t'})


nanomongo is Python23 compatible and I intend to support both pymongo & motor
transparently under the hood.

Contributions and insight are welcome!

:Author: Eren Güven (GitHub_, Twitter_)
:License: Apache Software License

.. _GitHub: https://github.com/eguven
.. _Twitter: https://twitter.com/cyberfart

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

nanomongo-0.3.2.tar.gz (18.1 kB view details)

Uploaded Source

Built Distribution

nanomongo-0.3.2-py2.py3-none-any.whl (14.5 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file nanomongo-0.3.2.tar.gz.

File metadata

  • Download URL: nanomongo-0.3.2.tar.gz
  • Upload date:
  • Size: 18.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for nanomongo-0.3.2.tar.gz
Algorithm Hash digest
SHA256 26f954acaac158f2708a180a18ec87def1a7a6bca1e64c89f5d4e6dd98f59fa3
MD5 c60907b4c235af9068e48152b2cfd24c
BLAKE2b-256 bbd6135f0a042b4cd3546e918cd1821af3742ecb351d611f9600a2ad7113ac82

See more details on using hashes here.

File details

Details for the file nanomongo-0.3.2-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for nanomongo-0.3.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 e36d93bb89554e9947948b9bb53d4bb8fdbdf01cb3386287c3eb5d248ca53ce1
MD5 5c34e1519f1d0edcf911b323d108b4aa
BLAKE2b-256 99b930004ab07897264de636fa1ec0f8ae623b4888573292a9a5b93cac0559e5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page