I’ve been using more and more my JSONStore database lately. It’s a simple database for JSON-like objects, and it works really nice when you have to store heterogeneous documents. I’m using it to store information about the characters in my World of Warcraft guild; all I have to do is:
from jsonstore import *
em = EntryManager('sqlite:///test.db')
em.create(name='Merlin', class_='mage', level=80)
We can add new kind of objects without rebuilding the dataset:
em.create(type='pet', name='Rex', level=70, owner='Merlin')
And we can now retrieve all players (not pets) with a level higher than 60:
em.search(level=GreaterThan(60), class_=Exists())