Luego de mirar en varios repositorios y sitios webs al concluir nos hemos encontrado la respuesta que te mostraremos a continuación.
Solución:
Dado que a todas las respuestas les faltan algunos bits (bloques de captura, verificar que el cliente no esté null
) Vine con mi propia solución. Probado con el servidor Mongo v4.0.7 y el controlador Node JS 3.2.2.
Tenga en cuenta que el ejemplo es un programa de consola, donde cerramos la conexión al servidor en el finally
cuadra. En una aplicación web, las conexiones se reutilizan. Consulte los documentos de Node Mongo. Además, los errores se registran con bibliotecas como Winston o Morgan y no se registran en la consola.
const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017';
async function findOne()
const client = await MongoClient.connect(url, useNewUrlParser: true )
.catch(err => console.log(err); );
if (!client)
return;
try
const db = client.db("testdb");
let collection = db.collection('cars');
let query = name: 'Volkswagen'
let res = await collection.findOne(query);
console.log(res);
catch (err)
console.log(err);
finally
client.close();
await findOne();
Editar: ‘mongodb’ v3.x
de acuerdo con el futuro de mongoDB ES6, puede usarlo de esta manera;
let MongoClient = require('mongodb').MongoClient;
const connectionString = 'mongodb://localhost:27017';
(async () =>
let client = await MongoClient.connect(connectionString,
useNewUrlParser: true );
let db = client.db('dbName');
try
const res = await db.collection("collectionName").updateOne(
"someKey": someValue
, $set: someObj , upsert: true );
console.log(`res => $JSON.stringify(res)`);
finally
client.close();
)()
.catch(err => console.error(err));
Gracias. Trabajando muy bien con ES6:
const middleWare = require('middleWare');
const MONGO = require('mongodb').MongoClient;
router.get('/', middleWare(async (req, res, next) =>
const db = await MONGO.connect(url);
const MyCollection = db.collection('MyCollection');
const result = await MyCollection.find(query).toArray();
res.send(result);
))
Tienes la opción de amparar nuestro estudio añadiendo un comentario y valorándolo te damos la bienvenida.