Skip to main content

Object mapper for Amazon DynamoDB

Project description

Dynamodb-mapper – a DynamoDB object mapper, based on boto.


DynamoDB is a minimalistic NoSQL engine provided by Amazon as a part of their AWS product.

DynamoDB allows you to stores documents composed of unicode strings or numbers as well as sets of unicode strings and numbers. Each tables must define a hash key and may define a range key. All other fields are optional.

Dynamodb-mapper brings a tiny abstraction layer over DynamoDB to overcome some of the limitations with no performance compromise. It is highly inspired by the mature MoongoKit project


  • Boto = 2.6.0
  • AWS account

We assume you’ve correctly set your Boto credentials.

Example usage

Quick install

$ pip install dynamodb-mapper

If you have not yet configured Boto, you may simply

$ export AWS_ACCESS_KEY_ID=<your id key here>
$ export AWS_SECRET_ACCESS_KEY=<your secret key here>

First Model

from dynamodb_mapper.model import DynamoDBModel

class DoomMap(DynamoDBModel):
    __table__ = u"doom_map"
    __hash_key__ = u"episode"
    __range_key__ = u"map"
    __schema__ = {
        u"episode": int,
        u"map": int,
        u"name": unicode,
        u"cheats": set,
    __defaults__ = {
        "cheats": set([u"Konami"]),

Initial Table creation

from dynamodb_mapper.model import ConnectionBorg

conn = ConnectionBorg()
conn.create_table(DoomMap, 10, 10, wait_for_active=True)

Model Usage

e1m1 = DoomMap()
e1m1.episode = 1 = 1 = u"Hangar"
e1m1.cheats = set([u"idkfa", u"iddqd", u"idclip"])

# Later on, retrieve that same object from the DB...
e1m1 = DoomMap.get(1, 1)

# query all maps of episode 1
e1_maps = DoomMap.query(hash_key=1)

# query all maps of episode 1 with 'map' hash_key > 5
from boto.dynamodb.condition import GT
e1_maps_after_5 = DoomMap.query(


Want to contribute, report a but of request a feature ? The development goes on at Ludia’s BitBucket account:

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for dynamodb-mapper, version 1.7.0
Filename, size File type Python version Upload date Hashes
Filename, size dynamodb-mapper-1.7.0.tar.gz (25.3 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page