Freitag Okt. 12, 2012

MongoKit - Dokumentenmapping mit Python und MongoDB

Will man Dokumente in MongoDB mit Python speichern, nimmt man PyMongo - oder MongoKit ;-) Letzterer setzt auf PyMongo auf und wenn man will, kann man auch direkt auf die PyMongo API durch greifen, wenn's pressiert... Aber mit MongoKit ist das Dokumentenhandling sehr schön gemacht. Man erzeugt eine Python-Klasse, die von Document vererbt und definiert dort seine Dokumentenstruktur. Zusätzlich kann man noch sog. Validators hinzufügen, die dafür sorgen, das Constraints eingehalten werden. Das sieht dann z.B. so aus:

def max_length(length):
    def validate(value):
        if len(value) <= length:
            return True
        raise Exception('%s must be at most %s characters long' % length)
    return validate

class User(Document):
    structure = {
        'name': unicode,
        'email': unicode,
    }

    validators = {
        'name': max_length(50),
        'email': max_length(120)
    }

    use_dot_notation = True
    def __repr__(self):
        return '<User %r>' % (self.name)

Kommentare:

Senden Sie einen Kommentar:
  • HTML Syntax: Ausgeschaltet