An open API service indexing awesome lists of open source software.

https://github.com/mikeal/browsercouch

CouchDB in the browser
https://github.com/mikeal/browsercouch

Last synced: 2 months ago
JSON representation

CouchDB in the browser

Awesome Lists containing this project

README

        

BrowserCouch
============

CouchDB in the browser - persistant, syncing client side storage.



Status
------

I'm a few weeks away from what I'd call a 'stable' release. Please feel
free to fork or suggest improvements, but I'd hold off on using this
in a live setting until I can get some issues ironed out.

Thanks,

Example
-------

###GET:

var database = BrowserCouch('foo');
database.onload(function(){
database.get('bar', function(d){console.log(d)});
});


###SYNC

database.sync('http://localhost:5984/foo', {continuous:true});

###MAP REDUCE

var test_data = [
{_id : "0", hello : 'world'},
{_id : "1", chunky : 'monkey'},
{_id : "2", foo : 'bar'},
{_id : "3", black : 'hat'},
{_id : "4", black : 'tea'},
{_id : "5", words : 'two foo three'},
{_id : "6", words: 'two'}
];

var db = BrowserCouch('bar');

db.onload(function(){
db.put(test_data, function(){});
});

Some time later ...

var db = BrowserCouch('bar');
db.onload(function(){
db.view({
map : function(doc, emit){
if (doc.words){
var words = doc.words.split(" ");
for (var i = 0; i < words.length; i++)
emit(words[i], 1);
}
},
reduce : function(keys, values){
var sum = 0;
for (var i = 0; i < values.length; i++)
sum += values[i];
return sum;
},
finished : function(view){
console.log(view.findRow('two')); // Should emit 2
}
});
});


(See the unit tests for more examples)