From dd612ccd5626cd2123ef9dfb057cef6d00d55c3e Mon Sep 17 00:00:00 2001 From: haad Date: Mon, 10 Oct 2016 16:09:00 -0400 Subject: [PATCH] Add Document Store to README and API docs. Add links to orbit-db-* repos. --- API.md | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 2 ++ 2 files changed, 66 insertions(+) diff --git a/API.md b/API.md index 58eb711..703d215 100644 --- a/API.md +++ b/API.md @@ -20,6 +20,12 @@ - [iterator([options])](#feedname) - [remove(hash)](#feedname) - [events](#feedname) + - [docstore(name, options)](#docstorename-options) + - [put(doc)]() + - [get(hash)]() + - [query(mapper)]() + - [del(key)]() + - [events]() - [counter(name)](#countername) - [value](#countername) - [inc([amount])](#countername) @@ -71,6 +77,9 @@ After creating an instance of `orbitd-db`, you can now access the different data ### kvstore(name) + Package: + [orbit-db-kvstore](https://github.com/haadcode/orbit-db-kvstore) + ```javascript const db = orbitdb.kvstore('application.settings') ``` @@ -101,6 +110,9 @@ After creating an instance of `orbitd-db`, you can now access the different data ### eventlog(name) + Package: + [orbit-db-eventlog](https://github.com/haadcode/orbit-db-eventlog) + ```javascript const db = orbitdb.eventlog('site.visitors') ``` @@ -136,6 +148,9 @@ After creating an instance of `orbitd-db`, you can now access the different data ### feed(name) + Package: + [orbit-db-feed](https://github.com/haadcode/orbit-db-feed) + ```javascript const db = orbitdb.feed('orbit-db.issues') ``` @@ -174,8 +189,57 @@ After creating an instance of `orbitd-db`, you can now access the different data See [events](#stores) for full description. +### docstore(name, options) + + Package: + [orbit-db-docstore](https://github.com/shamb0t/orbit-db-docstore) + + ```javascript + const db = orbitdb.docstore('orbit.users.shamb0t.profile') + ``` + + By default, documents are indexed by field '_id'. You can also specify the field to index by: + + ```javascript + const db = orbitdb.docstore('orbit.users.shamb0t.profile', { indexBy: 'name' }) + ``` + + - **put(doc)** + ```javascript + db.put({ _id: 'QmAwesomeIpfsHash', name: 'shamb0t', followers: 500 }).then((hash) => ...) + ``` + + - **get(key)** + ```javascript + const profile = db.get('shamb0t') + .map((e) => e.payload.value) + // [{ _id: 'shamb0t', name: 'shamb0t', followers: 500 }] + ``` + + - **query(mapper)** + ```javascript + const all = db.query((doc) => doc.followers >= 500) + // [{ _id: 'shamb0t', name: 'shamb0t', followers: 500 }] + ``` + + - **del(key)** + ```javascript + db.del('shamb0t').then((removed) => ...) + ``` + + - **events** + + ```javascript + db.events.on('data', (dbname, event) => ... ) + ``` + + See [events](#stores) for full description. + ### counter(name) + Package: + [orbit-db-counter](https://github.com/haadcode/orbit-db-counter) + ```javascript const counter = orbitdb.counter('song_123.play_count') ``` diff --git a/README.md b/README.md index 53bf292..3e11cd8 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,7 @@ Data in `orbit-db` can be stored in a - **Key-Value Store** - **Eventlog** (append-only log) - **Feed** (add and remove log) +- **Documents** (indexed by custom fields) - **Counters** This is the Javascript implementation and it works both in **Node.js** and **Browsers**. @@ -63,6 +64,7 @@ See [API documentation](https://github.com/haadcode/orbit-db/blob/master/API.md) - [kvstore(name)](https://github.com/haadcode/orbit-db/blob/master/API.md#kvstorename) - [eventlog(name)](https://github.com/haadcode/orbit-db/blob/master/API.md#eventlogname) - [feed(name)](https://github.com/haadcode/orbit-db/blob/master/API.md#feedname) + - [docstore(name, options)](https://github.com/haadcode/orbit-db/blob/master/API.md#docstorename-options) - [counter(name)](https://github.com/haadcode/orbit-db/blob/master/API.md#countername) - [disconnect()](https://github.com/haadcode/orbit-db/blob/master/API.md#disconnect) - [events](https://github.com/haadcode/orbit-db/blob/master/API.md#events)