I just released version 0.4.0 of Data.js, a data manipulation and graph 
persistence framework for Node.js and the browser.

It can also be considered a declarative interface to CouchDB, where users can 
use the same API from Node.js or from the browser.
Data.js is built around a graph data model, where one node in the graph 
corresponds to one document in Couch.
It offers support for object relationships and solves the "Data Join Problem" 
using multiple gets for resolving associated objects.

It introduces a query language that can be used to solve most common tasks, 
leaving complex queries and calculations to map/reduce.

Example query:

{
"type": "/type/"location",
"state": "CA",
"visitors": {} // placeholder, telling the query execution engine to return 
associated visitor objects
}

The result is a subgraph, containing the query matches, along with associated 
objects (visitors):

{
"/location/san_francisco": {"state": "CA", "visitors": ["/person/frank", 
"/person/mary"], "type": "/type/location"},
"/person/frank": {..., "type": "/type/person"},
"/person/mary": {..., "type": "/type/person"},
...
}

Here's more: http://substance.io/#michael/data-js

And the source: http://github.com/michael/data

Would love to get some feedback. :)

-- Michael


Reply via email to