MongooseError: Operation users.insertOne() buffering timed out after 10000ms” in Mongo Db atlas

MongooseError: Operation users.insertOne() buffering timed out after 10000ms” in Mongo Db atlas

我目前正在使用 node 和 mongoDB 这是我的代码

import dotenv from "dotenv";
import mongoose from "mongoose";

dotenv.config();

mongoose
  .connect(
    `mongodb+srv://OmniBotBuilder:${process.env.DBPASS}${process.env.DBUSER}.kx2vg.mongodb.net/${process.env.DBNAME}?retryWrites=true&w=majority`,
    {
      useUnifiedTopology: true,
      useNewUrlParser: true,
    }
  )
  .catch(() => console.error("Unable to connect to DB"));

mongoose.connection.on("connected", () => {});

const Schema = mongoose.Schema;

const omniGamesSchema = new Schema({
  discordId: Number,
  steamId: Number,
});

const omniGamesModel = mongoose.model("omniGamesSchema", omniGamesSchema);

const createNewUser = (discordId, steamId) => {
  const newUserMap = new omniGamesModel({
    discordId: discordId,
    steamId: steamId,
  });

  newUserMap.save((err) => {
    if (err) {
      console.error(err);
    }
  });
};

export { createNewUser };

我得到的错误是这个

MongooseError:操作 omnigamesschemas.insertOne() 缓冲在 10000 毫秒后超时 在超时。 (C:\Users\dahiy\OneDrive\Desktop\bots\omni-games\node_modules\mongoose\lib\drivers\node-mongodb-native\collection.js:198:23) 在 listOnTimeout(节点:internal/timers:557:17) 在 processTimers(节点:internal/timers:500:7)

这个问题一般是因为:

  • 错误的身份验证,意思是 mongo 路径字符串是错误的,所以也许仔细检查您的密码和用户名

  • 检查允许从mongo网站访问数据库的IP,如果你想从任何地方访问它只需使用IP:0.0.0.0/0

  • 您的互联网连接可能很慢,以至于无法连接到数据库

希望这对您有所帮助! :)