const mongoose = require("mongoose"); mongoose.connect("mongodb://localhost:27017/fruitsDB", { useNewUrlParser: true }); const fruitSchema = new mongoose.Schema({ name: String, rating: Number, review: String }); const Fruit = mongoose.model("Fruit", fruitSchema); const fruit = new Fruit({ name: "Apple", rating: 7, review: "Good Fruit" }); fruit.save(); const banana = new Fruit({ name: "banana", rating: 9, review: "Noice" }); const mango = new Fruit({ name: "Mango", rating: 10, review: "best Fruit" }); Fruit.insertMany([banana, mango], function (err) { if (err) console.log(err); else console.log("Inserted all!"); }); Fruit.find(function (err, fruits) { if (err) console.log(err); else { mongoose.connection.close(); fruits.forEach((fruitdata) => { console.log(fruitdata.name); }); } });
Mongoose.connection.close() tarda casi 10-12 segundos antes de que la conexión realmente se cierre. También probé mongoose.disconnect() pero el problema persiste. El uso de la función asíncrona y la tecla de espera tampoco hizo ninguna diferencia. No sé qué está pasando mal. Pero según tengo entendido en el siguiente fragmento, el manejo de errores está tomando tiempo.
Fruit.find(function (err, fruits) { if (err) console.log(err); else { mongoose.connection.close(); fruits.forEach((fruitdata) => { console.log(fruitdata.name); }); } });
Si solo coloco mongoose.connection.close() o mongoose.disconnect() encima de este fragmento, la conexión se cierra en milisegundos, pero cuando se coloca dentro de la función de devolución de llamada de .find, demora entre 10 y 12 segundos.