#javascript #node.js #mongodb
Вопрос:
Я новичок в MongoDB. Когда я запускаю приведенный ниже код, я получаю сообщение об ошибке: Topology is closed
. Я хочу создать документ в коллекции. Почему это происходит и как я могу это исправить? Я бы оценил любую помощь.
const { MongoClient } = require('mongodb');
const uri = "mongodb srv://(login info)@cluster0.56skb.mongodb.net/myFirstDatabase?retryWrites=trueamp;w=majority";
const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true });
client.connect(err => {
const db = client.db("test");
async function mongo () {
await db.collection('a').insertMany([
{ item: "journal",
qty: 25,
size: { h: 14, w: 21, uom: "cm" },
status: "A"},
{ item: "notebook",
qty: 50,
size: { h: 8.5, w: 11, uom: "in" },
status: "A"},
{ item: "paper",
qty: 100,
size: { h: 8.5, w: 11, uom: "in" },
status: "D"},
{ item: "planner",
qty: 75, size: { h: 22.85, w: 30, uom: "cm" },
status: "D"},
{ item: "postcard",
qty: 45,
size: { h: 10, w: 15.25, uom: "cm" },
status: "A"}
])
.then(function(result) {
// process result
})
}
mongo()
const collection = client.db("test").collection("devices");
// perform actions on the collection object
client.close();
});
Комментарии:
1. Я сделал все это, и я получаю ошибку: «Не удается использовать сеанс, который закончился» Я пытался исправить это в течение нескольких часов, но безуспешно. Не могли бы вы помочь мне, пожалуйста, фуртер?
2. Наконец-то я все исправил. Я использовал другой метод/структуру кода. Спасибо вам за помощь!
Ответ №1:
1 — Проверьте имя и пароль своей базы данных.
2 — Откройте Mongodb atlas и в разделе «Доступ к сети» измените IP — адрес на «0.0.0.0/0 (включает ваш текущий IP-адрес) «.
3-Возможно, вы можете попробовать добавить «ожидание» перед client.close().