Delta Pouch
A PouchDB plugin for partial updates that uses the every-doc-is-a-delta storage pattern. You can use delta pouch to enable conflict-free collaborative editing of the same docs.
Example
var db = 'pages'; // Create a new pagedb;
Note: if you tried something similar with the db.put()
built into pouchdb, the url attribute would be blanked out.
Live Demo: Profile
Live Demo: Websites
Usage
To use this plugin, include it after pouchdb.js
in your HTML page:
Or to use it in Node.js, just npm install it:
npm install delta-pouch
And then attach it to the PouchDB
object:
var PouchDB = ;PouchDB;
More Examples:
Create doc
db;
Update doc
db;
Delete doc
db;
Fetch all docs
dball;
Cleanup
db;
Delta pouch stores every change as a doc. The cleanup() function removes any changes that are no longer needed and should probably be run via a periodic background process like a node cron job. It is not necessary to use the cleanup() function, but it is advisable as it reduces unneeded syncing and data storage.
Listen for events
db;dbdelta ;
Save changes
var oldDoc = $id: 123 url: 'google.com' views: 0 ;var newDoc = url: 'google.com' views: 1 ;db;
Running the included examples
Note: you must have couchdb installed and Admin Party enabled
npm install
npm run dev
Visit the target example in your browser, e.g. http://127.0.0.1:8001/examples/websites
Using Delta Pouch with angularjs
Check out factoryng, an all-in-one angularjs adapter that has great support for Delta Pouch!
Contributing
Interested in contributing?
Alternatives
Checkout DeltaDB an offline-first database written in JS.