Mongoose连接,查询,但不会返回数据

eit6fx6z  于 9个月前  发布在  Go
关注(0)|答案(1)|浏览(100)

我正在使用以下内容:
mongodb 7.0 in a vm(ubuntu no container)nodejs 18+ mongoose 7.5.0 kubernetes 1.28.3
当我在kubernetes容器中运行应用程序时,应用程序能够连接和查询db,db位于k8s外部,但它在集群中的每个应用程序中的每个查询中都返回一个空集。
下面是连接代码,它对所有应用程序都是相同的。

// -------  Start Mongo connection ---------------------------
mongoose.set("strictQuery", false);
mongoose.set("bufferCommands", true);
let result = true;

const options = {
  useNewUrlParser: true,
  useUnifiedTopology: true,
  autoIndex: true,
  serverSelectionTimeoutMS: 5000, // Keep trying to send operations for 5 seconds
  family: 4, // Use IPv4, skip trying IPv6.
};
mongoose.set("debug", true);

const mongo_url = `${process.env.MONGO_connectionType}://${process.env.MONGO_url}/${process.env.MONGO_dbname}?replicaSet=${process.env.MONGO_replicaSet}&readPreference=${process.env.MONGO_readPreference}`;

mongoose.connect(mongo_url, options).catch((e) => {
  errorLog("Index", "app-listen", `Mongoose failed to connect to DO with error ${e.message}`, false, "error");
  result = false;
});

mongoose.connection.once("open", () => console.log(`Connected to Mongoose on DO using ${process.env.MONGO_dbName}`));
// listen for errors after the initial connection.
mongoose.connection.on("error", (error) => {
  console.error(error);
  if (error.name === "MongooseServerSelectionError") {
    console.log(error.reason.servers);
  }
  result = false;
});
mongoose.connection.on("disconnect", (error) => {
  console.error(error);
  result = false;
});
// --------------- End Mongoose Connection -------------------

字符串
下面是连接和查询的控制台输出

[nodemon] 3.0.1
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,cjs,json
[nodemon] starting `node --trace-warnings index.js`
mainsite_server has started on port 8080
{"level":"info","message":"{\"file\":\"Index\",\"method\":\"app-listen\",\"message\":\"mainsite_server has started on porttt 8080\",\"podname\":\"mainsite-server-845cf9f56b-2hwg7\"}"}
Connected to Mongoose on DO using db_dev
Mongoose: users.createIndex({ uuid: 1 }, { unique: true, background: true })
Mongoose: users.createIndex({ username: 1 }, { unique: true, background: true })
Mongoose: users.createIndex({ email: 1 }, { unique: true, background: true })
Mongoose: products.find({ available: true, type: 'active', environment: 'dev' }, { sort: { level: 1 } })
Mongoose: products.find({ available: true, type: 'active', environment: 'dev' }, { sort: { level: 1 } })
Mongoose: products.find({ available: true, type: 'active', environment: 'dev' }, { sort: { level: 1 } })


代码不会发出任何类型的错误,只是返回一个空的结果。我已经在vscode debug中运行了相同的代码,访问相同的数据库,一切都按预期工作。是的,数据库中有数据要返回。我不知道如何调试这个。任何关于在哪里查找的建议都将是有帮助的。
谢谢

ncecgwcz

ncecgwcz1#

这是一个正确的凭据,但错误的数据库指定的情况。连接字符串是错误的。Mongoose可以与错误消息简洁。三重检查您的凭据。

相关问题