minimal/pouchdb

Introduction à PouchDB

PouchDB est une implémentation Javascript de CouchDB, qui fonctionne sur un navigateur ou en Node.js. C’est une base de données NoSQL qui permet de stocker des documents JSON sans format a-priori, et qui implémente le protocole de réplication de CouchDB.

Création / ouverture d’une base de données locale

À la création, un répertoire items contenant les données est créé dans le répertoire courant

Création / ouverture d’une base de données distante

Créer un document : post

Si _id n’est pas fourni, il est généré automatiquement

Obtenir tous les documents : allDocs

$ node
> const PouchDB = require('pouchdb')
undefined
> let db = new PouchDB('items')
undefined
> db.allDocs({ include_docs: true }).then(function(result) { console.log(result) }) ; true
true
 { total_rows: 4,
  offset: 0,
  rows: 
   [ { id: 'id1', key: 'id1', value: [Object], doc: [Object] },
     { id: 'id2', key: 'id2', value: [Object], doc: [Object] },
     { id: 'id3', key: 'id3', value: [Object], doc: [Object] },
     { id: 'id4', key: 'id4', value: [Object], doc: [Object] } ] }

Obtenir un document par son identifiant : get

$ node
> db.get('id1')
... .then(function(doc) { console.log(doc) })
... .catch(function(error) { console.log(error) }) ; true
true
 { name: 'Lait',
  keywords: [ 'cuisine', 'épicerie' ],
  _id: 'id1',
  _rev: '1-b20bb0f73d1547678726a7d3bdc2859a' }

Modifier un document : put

Il faut lire le document avant de faire put, car il faut fournir un numéro de révision valide que get fournit

$ node
> db.get('id1')
... .then(function(doc) { doc.name = 'Lait 1/2E' ; return db.put(doc) })
... .then(function(result) { console.log(result) })
... .catch(function(error) { console.log(error) }) ; true
true
 { ok: true,
  id: 'id1',
  rev: '2-f578386df36b4ab1b4eab1da84c2e235' }