Socket
Socket
Sign inDemoInstall

orbit-db-docstore

Package Overview
Dependencies
1
Maintainers
3
Versions
37
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    orbit-db-docstore

Document Store for orbit-db


Version published
Weekly downloads
320
increased by31.69%
Maintainers
3
Install size
19.6 kB
Created
Weekly downloads
 

Readme

Source

orbit-db-docstore

npm Gitter Matrix

Document Store for orbit-db

Database for storing indexed documents. Stores documents by _id field by default but you can also specify a custom field to index by.

This is a core data store in orbit-db

Table of Contents

Install

This project uses npm and nodejs

npm install orbit-db-docstore

Usage

import * as IPFS from 'ipfs'
import OrbitDB from 'orbit-db'

const ipfs = new IPFS()
const orbitdb = await OrbitDB.createInstance(ipfs)
const docstore = await orbitdb.docstore('db name')

docstore.put({ _id: 'hello world', doc: 'all the things' })
  .then(() => docstore.put({ _id: 'sup world', doc: 'other things' }))
  .then(() => docstore.get('hello'))
  .then((value) => console.log(value))
  // [{ _id: 'hello world', doc: 'all the things'}]

You can specify the field to index by in the options:

const docstore = await orbitdb.docstore('db name', { indexBy: 'doc' })

docstore.put({ _id: 'hello world', doc: 'some things' })
  .then(() => docstore.put({ _id: 'hello universe', doc: 'all the things' }))
  .then(() => docstore.get('all'))
  .then((value) => console.log(value))
  // [{ _id: 'hello universe', doc: 'all the things'}]

You can also use a mapper to query the documents

const docstore = await orbitdb.docstore('db name')

docstore.put({ _id: 'hello world', doc: 'some things', views: 10 })
  .then(() => docstore.put({ _id: 'hello universe', doc: 'all the things', views: 100 }))
  .then(() => docstore.put({ _id: 'sup world', doc: 'other things', views: 5 }))
  .then(() => docstore.query((e)=> e.views > 5))
  .then((value) => console.log(value))
  // [{ _id: 'hello world', doc: 'some things', views: 10}, { _id: 'hello universe', doc: 'all the things', views: 100}]

API

See orbit-db API documentation for full details

docstore(name, options)

Package: orbit-db-docstore

const db = await orbitdb.docstore('orbit.users.shamb0t.profile')

By default, documents are indexed by field '_id'. You can also specify the field to index by:

const db = await orbitdb.docstore('orbit.users.shamb0t.profile', { indexBy: 'name' })
  • put(doc)

    db.put({ _id: 'QmAwesomeIpfsHash', name: 'shamb0t', followers: 500 }).then((hash) => ...)
    
  • get(key)

    const profile = db.get('shamb0t')
      .map((e) => e.payload.value)
    // [{ _id: 'shamb0t', name: 'shamb0t', followers: 500 }]
    
  • query(mapper)

    const all = db.query((doc) => doc.followers >= 500)
    // [{ _id: 'shamb0t', name: 'shamb0t', followers: 500 }]
    
  • del(key)

    db.del('shamb0t').then((removed) => ...)
    
  • events

    db.events.on('data', (dbname, event) => ... )
    

    See events for full description.

Contributing

If you think this could be better, please open an issue!

Please note that all interactions in @orbitdb fall under our Code of Conduct.

License

MIT ©️ 2015-2018 shamb0t, Haja Networks Oy

Keywords

FAQs

Last updated on 18 Jan 2023

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc