sintaxis - Contraseña de MongoDB con "@" en ella
mongodb tutorial (9)
Ninguna de las soluciones mencionadas anteriormente funcionó para mí. Investigué más y descubrí que tenía que incluir el parámetro useNewUrlParser.
mongoose.connect(db, {
useNewUrlParser : true
},
err => {
if (err){
console.error(''Error: '' + err)
}
else{
console.log(''Connected to MongoDb'')
}
})
Por lo que entiendo, necesitas una versión específica de MongoDB para usar esto. Para obtener más detalles, marque la casilla Evitar que el analizador de cadenas URL actual esté en desuso estableciendo useNewUrlParser en true
Es para deshacerse de la advertencia, pero claramente la versión también afecta el parámetro requerido.
No he probado todos los personajes especiales, pero definitivamente funciona con ''@ # $''.
Espero que esto ayude.
Estoy intentando conectarme a una base de datos MongoDB con un nombre de usuario y contraseña usando Mongoose en Node.js. Todos los documentos dicen que la cadena de conexión debería verse
mongodb://username:password@host:port/db
Sin embargo, la contraseña contiene el carácter ''@''. ¿Cómo puedo hacer una cadena de conexión de esto que la mangosta entenderá? ¿Puedo escapar de la ''@'' en la contraseña o hay otro método de conexión que debo usar?
Prueba este, mis amigos:
mongoose.connect("mongodb://localhost:27017/test?authSource=admin",
{user: ''viettd'', pass: ''abc@123''});
test
es mi nombre db
admin
es mi el DB para autenticar
viettd
es mi nombre de usuario
abc@123
es mi contraseña
Si su contraseña tiene caracteres especiales:
const dbUrl = `mongodb://adminUsername:${encodeURIComponent(''adminPassword'')}@localhost:27017/mydb`;
También me he enfrentado al mismo problema. Lo he resuelto agregando una contraseña codificada en la cadena de conexión. Y funciona muy bien.
(1) Codifique su contraseña desde https://www.url-encode-decode.com (2) Reemplace su contraseña por una codificada. (3) Debería funcionar bien.
Por ejemplo: Contraseña actual: ABCDEX $ KrrpvDzRTy` @ drf. ''; 3X Contraseña codificada: ABCDEX% 24KrrpvDzRTy% 60% 40drf.% 27% 3B3X
mongodb: // user1: ABCDEX%24KprpvDzRTy%60%40drf.%27%[email protected]: 1234, ds1234-test.com: 19889 / mongo-dev? replicaSet = rs-ds123546978 & ssl = true '',
Use el parámetro de options
de la llamada mongoose.connect
para especificar la contraseña en lugar de incluirla en la cadena URL:
mongoose.connect(''mongodb://localhost/test'',
{user: ''username'', pass: ''p@ssword''},
callback);
Use esta sintaxis, no olvide la opción uri_decode_auth
.
mongoClient.connect("mongodb://username:p%40ssword@host:port/dbname", {
uri_decode_auth: true
}, function(err, db) {
}
);
a veces necesita conectarse a la base de datos utilizando otras tools que acepten una cadena solo como cadena de conexión. así que simplemente cambie el signo @ con% 40
use pwd en su lugar pase, eso funcionó para mí para la versión3.2
mongoose.connect(''mongodb://localhost/test'',
{user: ''username'', pwd: ''p@ssword''},
callback);
Also, if your password contains a percentage, %,
Because the percent ("%") character serves as the indicator for percent-encoded octets, it must be percent-encoded as "%25" for that octet to be used as data within a URI
for example, if your password is John%Doe, the new transformed password will be John%25Doe or
If password is Paul%20Wait, New Password will be Paul%2520Wait
mongoClient.connect("mongodb://username:John%25Doe@host:port/dbname", function(err, db) {
// password is John%Doe
}`enter code here`
);