Estoy usando MongoDB Atlas y Node.js. Estoy tratando de insertar un documento en la colección "B99", pero aparece el error: MongoError: Topology is closed, please connect .
Esto es lo que he intentado hasta ahora (de las respuestas en otras publicaciones, pero ninguno de ellos ha funcionado):
client.close(); al final. var MongoClient = require('mongodb').MongoClient; const MongoUsername = process.env.MONGO_USERNAME const MongoPassword = process.env.MONGO_PASSWORD var uri = "mongodb+srv://" + MongoUsername + ":" + MongoPassword + "@testcluster.8mz1j.mongodb.net/BrooklynNineNine?retryWrites=true&w=majority"; const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true }); client.connect(err => { const collection = client.db("BrooklynNineNine").collection("B99"); const pizzaDocument = { name: "Neapolitan pizza", shape: "round", toppings: [ "San Marzano tomatoes", "mozzarella di bufala cheese" ] }; const result = collection.insertOne(pizzaDocument); // perform actions on the collection object //client.close(); });Resuelto. Necesario poner insertOne y client.close() en una función asíncrona (gracias @D. SM), así:
const client = new MongoClient(uri, { userNewUrlParser: true, useUnifiedTopology: true, }); async function insert(client) { try { await client.connect(); const database = client.db("BrooklynNineNine"); const movies = database.collection("B99"); // create a document to be inserted const doc = { name: "Red", town: "kanto" }; const result = await movies.insertOne(doc); console.log("Done"); } finally { await client.close(); } } insert(client).catch(console.dir);