@asta-kun/sailsv1-hook-mongoat

Provides advanced mongo indexing options for sails models that use the sails-mongo adapter.

Usage no npm install needed!

<script type="module">
  import astaKunSailsv1HookMongoat from 'https://cdn.skypack.dev/@asta-kun/sailsv1-hook-mongoat';
</script>

README

sails-hook-mongoat

NPM version Build status Dependency Status

Provides advanced mongo indexing options for sails.js models that use the sails-mongo adapter.

Usage

npm i sails-hook-mongoat

Then simply add an 'indexes' array property to your sails model(s) that you want to add custom indexers on. This contains all your indexes.

Index properties:

  • attributes - an object with the attributes to index (can also be text indexes)
  • options (optional) - index options (see Mongo Index Options)

Examples

Creating a 'expires after' index

// MY MODEL WITH A DATE FIELD
module.exports = {
  attributes: {
    myDate: {
      type: 'date',
      required: true
    }
  },
  indexes: [
    {
      attributes: {
        myDate: 1
      },
      options: {
        expireAfterSeconds: 60  // expire 60s after myDate
      }
    }
  ]
};

Creating a composite unique index

// MY EVENTS MODEL
module.exports = {
  attributes: {
    event_id: {
      type: 'integer',
      required: true
    },
    match_id: {
      type: 'integer',
      required: true
    }
  },
  indexes: [
    //event & match composite index
    {
      attributes: {
        event_id: -1,    // desc
        match: 1         // asc
      },
      options: {
        unique: true
      }
    }
  ]
};

Maintained By