Skip to main content

Minimal Python ODM for MongoDB

Project description

nanomongo is a minimal MongoDB Object-Document Mapper for Python. It does not attempt to be a feature-complete ODM but if you like using pymongo api with python dictionaries and often find yourself writing validators and pymongo.Collection wrappers, nanomongo might suit your needs.

nanomongo has full test coverage.

Quick Links: Source (github) - Documentation (rtd) - Packages (PyPi)

Version 0.4: Utility methods dbref_field_getters, BaseDocument.get_dbref and Bugfix Python23 text type compatibility

Version 0.3: nanomongo is now python2 compatible (with syntactic difference when defining your Document, refer to Documentation)

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

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

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.4.1.tar.gz (20.0 kB view details)

Uploaded Source

Built Distribution

nanomongo-0.4.1-py2.py3-none-any.whl (16.0 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

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

File hashes

Hashes for nanomongo-0.4.1.tar.gz
Algorithm Hash digest
SHA256 16eea6890f288c2b2cf4810fc6586e91f0fd642132caf7ccb49ac8fbeabae4c2
MD5 e37e8244c26d77fd8ecbaee9832ab885
BLAKE2b-256 4ea252117e0f19515327d81cb3b3656726c0d66e6bbf10b6246b18f57d5e1886

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nanomongo-0.4.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 e733ae1a3a521ab3daca0e27ac0a437541a830fbe2375b464f66d1b098b78576
MD5 ad8c69892ee38a5439202b1158cde1b0
BLAKE2b-256 35a22a06d69037fd28a0d463ea7ea6ef6e410ac6e28e2f66b83d565ba4e0babb

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