MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Mongoose с ReplicaSet на Atlas

НА MONGODB 3.4.x

Разреших този проблем, като поставих стойността 'options' директно в низ 'uri', според документацията (http://mongoosejs.com/docs/connections.html ) в раздела „Връзки на комплект реплики“.

// 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;

Сега работи добре!

ЗАБЕЛЕЖКА С MONGODB 3.6

В MongoDB Atlas, използвайки версия 3.6.x, низът за връзка се промени, за да използва DNS сървър, което прави връзката по-къса.

...ако използвате този низ за свързване във вашето приложение, това ще се свърже успешно, но ще може да чете и пише само с потребители на atlas с по-високи привилегии за достъп (atlasAdmin, readWriteAnyDatabase...).

За да работите с конкретен потребител с привилегия само да чете и записва вашата база данни, ще трябва да запазите същия низ за връзка, използван в MongoDB 3.4, тъй като mongoose не разпозна DNS опцията (mongodb+srv).

P.S. всички нови ресурси от MongoDB 3.6.x ще продължат да работят нормално!



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Анализирайте JSON в MONGODB документ

  2. MongoDB разлика между $orderby и Sort

  3. Времето за изчакване на връзката изтича след надграждане на MongoDB.Driver от 2.7.0 на 2.7.1

  4. Многоключови индекси на MongoDB и граници на пресичане на индекси

  5. Как да използвате $ позиционен оператор в MongoDB C# драйвер версия 2