Intenté conectarme a mongodb con node.js, pero aparece el siguiente error. Aunque probé varias soluciones disponibles en esta plataforma, como cambiar mi DNS a DNS público de Google, degradar la versión del controlador node.js para la cadena de conexión, pero no funcionó para mí.
Error: queryTxt ETIMEOUT cluster0.1moqz.mongodb.net at QueryReqWrap.onresolve [as oncomplete] (dns.js:213:19) { errno: 'ETIMEOUT', code: 'ETIMEOUT', syscall: 'queryTxt', hostname: 'cluster0.1moqz.mongodb.net' }
aquí está mi código del lado del servidor:
const { MongoClient, ServerApiVersion } = require('mongodb'); const uri = `mongodb+srv://${process.env.DB_USER}:${process.env.DB_PASS}@cluster0.1moqz.mongodb.net/myFirstDatabase?retryWrites=true&w=majority`; const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true, serverApi: ServerApiVersion.v1 }); async function run() { try { await client.connect(); const userCollection = client.db('myTestDB').collection('users'); const newUser = { name: "username", email: "abc@def.com" }; const result = await userCollection.insertOne(newUser); console.log("adding new user", result); } finally { await client.close(); } } run().catch(console.dir);
¿Ha agregado su dirección IP a la lista de acceso IP?
Debe agregar su IP a la lista de acceso para acceder a la base de datos (desde esa IP). Para hacer esto: