sql >> Database >  >> NoSQL >> MongoDB

Mongoose met ReplicaSet op Atlas

OP MONGODB 3.4.x

Ik heb dit probleem opgelost door de 'options'-waarde rechtstreeks in de 'uri'-tekenreeks te plaatsen, volgens de documentatie (http://mongoosejs.com/docs/connections.html ) in het gedeelte '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;

Nu werkt het prima!

KENNISGEVING MET MONGODB 3.6

Op MongoDB Atlas met versie 3.6.x is de verbindingsreeks gewijzigd om een ​​DNS-server te gebruiken, waardoor de link korter is geworden.

...als u deze verbindingsreeks in uw toepassing gebruikt, zal dit met succes verbinden, maar het kan alleen lezen en schrijven met atlasgebruikers met hogere toegangsrechten (atlasAdmin, readWriteAnyDatabase...).

Als u met een specifieke gebruiker werkt die alleen het recht heeft om uw database te lezen, moet u dezelfde verbindingsreeks behouden die wordt gebruikt in MongoDB 3.4 omdat de mangoest de DNS-optie (mongodb+srv) niet herkende.

PS alle nieuwe bronnen van MongoDB 3.6.x blijven normaal werken!



  1. Mongodb-aggregatieraamwerk | Groeperen over meerdere waarden?

  2. Stel redis-sleutel/waarde in met camel-redis

  3. Een woordenboek in een lijst krijgen op sleutel in mongoDB (mongoengine)

  4. Haal het aantal open verbindingen in mongoDB op met java