SU MONGODB 3.4.x
Ho risolto questo problema inserendo il valore "opzioni" direttamente nella stringa "uri", secondo la documentazione (http://mongoosejs.com/docs/connections.html ) nella sezione "Connessioni set di repliche".
// connection string using mongoose:
var uri = 'mongodb://MY_USER:[email protected]' +
'MY_SERVER-shard-00-00-clv3h.mongodb.net:27017,' +
'MY_SERVER-shard-00-01-clv3h.mongodb.net:27017,' +
'MY_SERVER-shard-00-02-clv3h.mongodb.net:27017/MY_DATABASE' +
'ssl=true&replicaSet=MY_REPLICASET_NAME-shard-0&authSource=MY_ADMIN_DATABASE';
mongoose.connect(uri);
var db = mongoose.connection;
Ora funziona bene!
AVVISO CON MONGODB 3.6
Su MongoDB Atlas che utilizza la versione 3.6.x, la stringa di connessione è stata modificata per utilizzare un server DNS rendendo il collegamento più breve.
...se utilizzi questa stringa di connessione nella tua applicazione, questa si collegherà con successo ma sarà in grado di leggere e scrivere solo con utenti Atlas con privilegi di accesso maggiori (atlasAdmin, readWriteAnyDatabase...).
Per lavorare con un utente specifico con privilegio solo per leggere e scrivere il tuo database, dovrai mantenere la stessa stringa di connessione utilizzata in MongoDB 3.4 perché la mangusta non ha riconosciuto l'opzione DNS (mongodb+srv).
PS tutte le nuove risorse di MongoDB 3.6.x continueranno a funzionare normalmente!