Estoy tratando de recibir todos los campos en mi base de datos en mi llamada API
Mi código:
exports.objfields = async (req, res, next) => { try { var db = mongo.connection; var objeto = req.headers.objeto; const result = db.db.collection(objeto).find(); return res.status(200).send({message:result}); } catch (error) { return res.status(401).send({ message: error.message }); } }; Para los resultados 200, me devuelve la siguiente oración "message": {"_events": {},"_eventsCount": 0} , ¿cómo puedo devolver los campos en la llamada a la API? (obs. También probé find({}) , pero devuelve lo mismo)
Veo dos problemas con tu código:
¿Estás seguro de que debería ser: db.db.collection y no db.collection ? Es difícil saberlo sin ver el código de inicio de la base de datos, pero primero verifíquelo dos veces.
Debe usar async/await para esperar a que MongoDB devuelva el resultado a su aplicación Node:
const result = await db.collection(objeto).find(); find() devuelve una promesa JS, no un valor directo inmediatamente. Para obtener más detalles sobre async/await, puede consultar:
https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Asynchronous/Async_await
Si termina con un objeto Cursor pero no puede ver los valores, intente convertir el Cursor en una matriz usando toArray() :
Por ejemplo:
const cursor = collection.find({}); const allValues = await cursor.toArray();