mongoose-any-index

Extra index functionality for mongoose

npm install mongoose-any-index
106 downloads in the last day
235 downloads in the last week
819 downloads in the last month

mongoose-any-index

Build Status

Mongoose plugin that adds some additional functionality to mongoose indexes:

  1. Lets you add arbitrary indexes to any path, regardless of whether it's specified in your schema. The typical case is when you want sparse indexes within a Mixed type:

     any_index = require 'mongoose-any-index'
     Awesome = new Schema
       email: { type: String, index: true, unique: true, required: true }
       tags: [{type: String}]
       data: { type: Schema.Types.Mixed }
     Awesome.plugin any_index, [
       { keys: { 'data.nested_field': 1 }, options: { unique: true, sparse: true } }
     ]
    
  2. Adds a Model.fullEnsureIndexes(cb) static method that drops indexes not specified in your schema. This lets you avoid "index bloat", since mongoose's Model.ensuresIndexes(cb) by default does not call dropIndex on pre-existing indexes.

Installation

npm install mongoose-any-index
npm loves you