aedes-persistence-mongodb

    8.2.0 • Public • Published

    aedes-persistence-mongodb

    .github/workflows/ci.yml Dependencies Status devDependencies Status
    Known Vulnerabilities Coverage Status NPM version NPM downloads

    Aedes persistence, backed by MongoDB.

    See aedes-persistence for the full API, and Aedes for usage.

    Install

    npm i aedes aedes-persistence-mongodb --save
    

    API

    aedesPersistenceMongoDB([opts])

    Creates a new instance of aedes-persistence-mongodb. It accepts a connections string url or you can pass your existing db object. Also, you can choose to set a ttl (time to live) for your subscribers or packets. This option will help you to empty your db from keeping useless data.

    Options

    • url: The MongoDB connection url
    • mongoOptions: Extra options to pass to MongoDB driver (see node-mongodb-native)
    • ttl: Used to set a ttl (time to live) to documents stored in collections
      • packets: Could be an integer value that specify the ttl in seconds of all packets collections or an Object that specifies for each collection its ttl in seconds. Packets collections are: incoming, outgoing, retained, will.
      • susbscriptions: Set a ttl (in seconds)
    • db: Existing MongoDB instance (if no url option is specified)
    • dropExistingIndexes: Flag used to drop any existing index previously created on collections (except default index _id)

    Examples

    aedesPersistenceMongoDB({
      url: 'mongodb://127.0.0.1/aedes-test', // Optional when you pass db object
      // Optional mongo options
      mongoOptions: { 
        auth: {
          user: 'username',
          password: 'password'
        }
      },
      // Optional ttl settings
      ttl: {
          packets: 300, // Number of seconds
          subscriptions: 300,
      }
    })

    With the previous configuration all packets will have a ttl of 300 seconds. You can also provide different ttl settings for each collection:

    ttl: {
          packets: {
            incoming: 100,
            outgoing: 100,
            will: 300,
            retained: -1
          }, // Number of seconds
          subscriptions: 300,
    }

    If you want a specific collection to be persistent just set a ttl of -1 or null or undefined.

    If you want to reuse an existing MongoDb instance just set the db option:

    aedesPersistenceMongoDB({
     db:db
    })

    With mongoose:

    aedesPersistenceMongoDB({
     db: mongoose.connection.useDb('myDbName').db
    })

    License

    MIT

    Install

    npm i aedes-persistence-mongodb

    DownloadsWeekly Downloads

    1,289

    Version

    8.2.0

    License

    MIT

    Unpacked Size

    45.6 kB

    Total Files

    6

    Last publish

    Collaborators

    • matteo.collina
    • roberts_lando
    • gnought
    • getlarge