@clocklimited/save-mongodb

mongodb persistence engine for save


License
ISC
Install
npm install @clocklimited/save-mongodb@3.0.1

Documentation

@clocklimited/save-mongodb - mongodb persistence engine for save

CircleCI

Installation

npm install @clocklimited/save-mongodb

// There is a peer dependency of mongodb - you have to bring your own!
npm install mongodb@^4

Usage

If you want to see how this works look at the tests or this simple example:

var MongoClient = require('mongodb').MongoClient // npm install mongodb
var save = require('save') // npm install save
var saveMongodb = require('@clocklimited/save-mongodb')

// connect to your mongodb database.
MongoClient.connect('mongodb://localhost:27017/', function(error, client) {
  if (error) return console.error(error.message)
  var connection = client.db('test')
  // Get a collection. This will create the collection if it doesn't exist.
  connection.collection('contact', function(error, collection) {
    if (error) return console.error(error.message)

    // Create a save object and pass in a mongodb engine.
    var contactStore = save('Contact', { engine: saveMongodb(collection) })

    // Then we can create a new object.
    contactStore.create({ name: 'Paul', email: 'paul@serby.net' }, function(
      error,
      contact
    ) {
      if (error) return console.error(error.message)

      // The created 'contact' is returned and has been given an _id
      console.log(contact)

      // Don't forget to close your database connection!
      client.close()
    })
  })
})

Streaming find()

Find now has a streaming interface

var contactStore = save('Contact', { engine: saveMongodb(collection) })
var es = require('event-stream')

contactStore.find({})
  .pipe(es.stringify())
  .pipe(process.stdout)

Credits

Paul Serby follow me on twitter @serby Clock Limited follow us on twitter @clock

Licence

Licenced under the New BSD License