sql >> Databasteknik >  >> NoSQL >> MongoDB

Kan inte ansluta till MongoDB i Azure

Tecken som @ är begränsade eftersom de förstör strukturen för URL:en. Anledningen till detta är att MongoDB tolkar den som @-separatorn. Istället för detta:

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

använd detta

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

För att koda lösenordet, använd encodeURIComponent(password)

Du kan också använda den här syntaxen.

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

På senare versioner, använd

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

enligt nedan

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


  1. Hur hanterar `mongoose` att lägga till dokument som har FÄLT som är __INTE__ en del av schemat?

  2. I NodeJS, hur matar man ut resultat från mongodb med olika fältnamn?

  3. Hur man utför jokerteckensökning i MongoDB med Java

  4. Uppdaterar/förnyar Mongoose upsert-operationen standardschemavärden?