skip to navigation
skip to content

Not Logged In

nosql 0.0.1

NoSQL ORM for relational db backed by SQLAlchemy

Overview
=========
`nosql` is a schemaless ORM for relational db backed by SQLAlchemy.

It's ultermately an implementation of the schemaless ORM introduced by Bret Taylor.

http://backchannel.org/blog/friendfeed-schemaless-mysql


Usage
=========
No instruction is better than real code! Say you are building a `Flask` app.

```python
import nosql
from app import db


class User(nosql.SchemalessModel):
        engine = db.engine
        indexes = (
                ('email',),
                ('facebook_id',),
                ('city',)
        )


User.create_all()

user = User()
user.email = 'yixi.zhang.max@gmail.com'
user.name = 'Yixi Zhang'
user.save()


# find returns a generator
>>> [user.name for user in User.find()]
['Yixi Zhang']


# find_one returns an instance, support any attribute
>>> User.find_one(email='yixi.zhang.max@gmail.com').name
Yixi Zhang


# added_id & id is auto-generated
>>> user.id
e597bb954cf74d51937d5a5e9fd2f2b8

>>> user.added_id
1


# retrieve non-exist attr returns None
>>> user.idol


>>> user.delete()

>>> list(User.find())
[]
```


Index
=========
Because `nosql` creates index tables, querying random attribute is fast.

Some todo's for index

* `index_updater` allows indexes to be added later on and schedule data pushing in the background.
* `sharding` on index.


Database Support
=========
So far only tested `SQLite` and `PostgreSQL`


License
=========
Do whatever you want. Hope you enjoy using it.
 
  • Downloads (All Versions):
  • 0 downloads in the last day
  • 0 downloads in the last week
  • 0 downloads in the last month