sailsjs: automatically create composite unique index (mongodb)
I created a sails hook to give advanced indexing options for models that use the sails-mongo adapter.
Supports all mongo indexing options.
Sails does not currently (as of v0.10) support multi-key indexes, although it is on our radar. For the time being, the way you are doing it--by specifying the index directly in the Mongo console--is the correct (and only) way.
Captain's log, stardate -303842.4081367327 (27th February 2019). Our destination is framework Sails 1.0x.
Even if Sails 1.0x/Waterline supports MongoDB composite indexes declaration in models (I'm not sure about that), when deploying your application in production, the indexes WILL NOT BE CREATED automatically... sad but true :(
Having that in mind...
Question 1 - Am I doing it right?
Yes you are... indexes are a bit complex and sometimes you will need to change them in production environment, so doing it by hand is necessary sometimes.
Question 2 - Creating indexes automatically
Yah... doing things by hand that could be done automagically is a pain in the donnuts...
For this issue, you can use the config/bootstrap.js file. Instead of ensureIndex function (it has been deprecated), you can use createIndex function (ensureIndex was an alias to createIndex). A working example of how to AUTOMATICALLY do that can be found here.