Tengo una aplicación nextjs que he estado desarrollando y necesito encontrar todos los documentos en una de mis colecciones. Estoy usando el módulo de nodo mongodb. cuando uso .find() para extraer los documentos, solo obtengo un objeto JSON vacío. Uso .findOne, .updateOne sin ningún problema para mis páginas de inicio de sesión y restablecimiento de contraseña. Aquí está mi código de la API.
try{ const client = await connectDatabase(); const events = client.db().collection('members'); const documents = events.find() res.status(200).json( documents);}catch(error){ res.status(500).json({message: error.message});}
Revisé toda la documentación de mongodb y no encontré una solución a este problema. esto es lo que obtengo cuando ejecuto el código {"_events":{},"_eventsCount":0}
La consulta de MongoDB es asíncrona, por lo que debe esperar la respuesta. Cambia tu código así:
const documents = await events.find();
Es porque .find()
devuelve un cursor para que pueda iterarlo, lo mejor que puede hacer aquí es transformarlo en una matriz como la siguiente:
const documents = await events.find().toArray();