MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Mangusto com ReplicaSet no Atlas


NO MONGODB 3.4.x

Resolvi esse problema colocando o valor 'options' diretamente na string 'uri', de acordo com a documentação (http://mongoosejs.com/docs/connections.html ) na seção 'Conexões do conjunto de réplicas'.
// 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;

Agora está funcionando bem!

AVISO COM MONGODB 3.6

No MongoDB Atlas usando a versão 3.6.x, a string de conexão foi alterada para usar um servidor DNS, tornando o link mais curto.

...se você usar essa string de conexão em seu aplicativo, ela será conectada com sucesso, mas poderá ler e escrever apenas com usuários do atlas com acesso de privilégios mais altos (atlasAdmin, readWriteAnyDatabase...).

Para você trabalhar com um usuário específico com privilégio apenas de readWrite em seu banco de dados, você precisará manter a mesma string de conexão usada no MongoDB 3.4 porque o mongoose não reconheceu a opção DNS (mongodb+srv).

P.S. todos os novos recursos do MongoDB 3.6.x continuarão funcionando normalmente!