NA MONGODB 3.4.x
Tento problém jsem vyřešil vložením hodnoty 'options' přímo do řetězce 'uri' podle dokumentace (http://mongoosejs.com/docs/connections.html ) v sekci 'Replica Set Connections'.
// 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;
Nyní to funguje dobře!
UPOZORNĚNÍ S MONGODB 3.6
Na MongoDB Atlas používajícím verzi 3.6.x se připojovací řetězec změnil tak, aby používal DNS server, čímž se odkaz zkrátil.
...pokud ve své aplikaci použijete tento připojovací řetězec, připojí se úspěšně, ale bude moci číst a zapisovat pouze uživatelé atlasu s přístupem s vyššími oprávněními (atlasAdmin, readWriteAnyDatabase...).
Chcete-li pracovat s konkrétním uživatelem s oprávněním pouze ke čtení a zápisu vaší databáze, budete muset zachovat stejný připojovací řetězec jako v MongoDB 3.4, protože mongoose nerozpoznal možnost DNS (mongodb+srv).
P.S. všechny nové zdroje z MongoDB 3.6.x budou nadále normálně fungovat!