sql >> Databáze >  >> NoSQL >> MongoDB

Mongoose s ReplicaSet na Atlasu

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!



  1. Spusťte MongoDB z úlohy Grunt

  2. Mongo $ ve výkonu operátora

  3. MongoDB nepoužívá /etc/mongodb.conf poté, co jsem změnil cestu dbpath

  4. Které NoSQL databáze pro extrémně velké objemy dat