pbojinov
6/21/2014 - 10:34 PM

Here is how you can create a table, with indexes, using PynamoDB - http://jlafon.io/pynamodb.html

Here is how you can create a table, with indexes, using PynamoDB - http://jlafon.io/pynamodb.html

from pynamodb.models import Model
from pynamodb.indexes import GlobalSecondaryIndex, AllProjection
from pynamodb.attributes import UnicodeAttribute, NumberAttribute


class DaysIndex(GlobalSecondaryIndex):
    """
    This class represents a global secondary index
    """
    read_capacity_units = 2
    write_capacity_units = 1
    projection = AllProjection()
    days_old = NumberAttribute(hash_key=True)


class HackerNewsLinks(Model):
    """
    A test model that uses a global secondary index
    """
    table_name = 'HackerNews'
    link = UnicodeAttribute(hash_key=True)
    title = UnicodeAttribute()
    days_index = DaysIndex()
    days_old = NumberAttribute(default=0)

if not HackerNewsLinks.exists():
    HackerNewsLinks.create_table(read_capacity_units=1, write_capacity_units=1)

# Indexes can be queried easily using the index's hash key
for item in HackerNewsLinks.day_index.query(1):
    print("Item queried from index: {0}".format(item))