MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Impossible de se connecter à MongoDB dans Azure

Les caractères comme @ sont limités car ils perturbent la structure de l'URL. La raison en est que MongoDB l'interprète comme le séparateur @. Au lieu de cela :

var mongoClient = require("mongodb").MongoClient;
mongoClient.connect("mongodb://myuser:[email protected]@myhost.documents.azure.com:10355/?ssl=true", function (err, db) {
  db.close();
});

utilisez ceci

mongoClient.connect("mongodb://myuser:myp%[email protected]:10355/?ssl=true", { 
  uri_decode_auth: true 
}, function (err, db) {
  db.close();
});

Pour encoder le mot de passe, utilisez encodeURIComponent(password)

Vous pouvez également utiliser cette syntaxe.

mongoClient.connect("mongodb://myhost.documents.azure.com:10355/?ssl=true", 
 {user: 'username', pass: '[email protected]'}, function (err, db) {
  db.close();
});

Sur les versions ultérieures, utilisez

auth: {
       user: 'username',
       password: '[email protected]',
    }

comme ci-dessous

mongoClient.connect("mongodb://myhost.documents.azure.com:10355/?ssl=true", {
  auth: {
   user: 'username',
   password: '[email protected]',
  }}, function (err, db) {
  db.close();
});