sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongoose med ReplicaSet på Atlas

PÅ MONGODB 3.4.x

Jag löste det här problemet genom att lägga "alternativ"-värdet direkt i "uri"-strängen, enligt dokumentationen (http://mongoosejs.com/docs/connections.html ) i avsnittet "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 fungerar det bra!

MEDDELANDE MED MONGODB 3.6

På MongoDB Atlas med version 3.6.x ändrades anslutningssträngen till att använda en DNS-server vilket gjorde länken kortare.

...om du använder den här anslutningssträngen i din applikation kommer den att ansluta med framgång, men den kommer endast att kunna läsa och skriva med atlasanvändare med högre behörighet (atlasAdmin, readWriteAnyDatabase...).

För att du ska arbeta med en specifik användare med behörighet att endast läsa och skriva din databas, måste du behålla samma anslutningssträng som används i MongoDB 3.4 eftersom mangusten inte kände igen DNS-alternativet (mongodb+srv).

P.S. alla nya resurser från MongoDB 3.6.x kommer att fortsätta fungera normalt!



  1. Hur man lagrar listelement i Redis cache

  2. Mongodb datastatistikvisualisering med matplotlib

  3. Det går inte att deserialisera PyMongo ObjectId från JSON

  4. Mongo konverterar alla numeriska fält som lagras som sträng