繁体   English   中英

Mongo shell 方法在 express 应用程序中抛出“不是函数”错误

[英]Mongo shell methods throwing "not a function" error in express app

我正在尝试在我的快速应用程序中获取有关我的 mongoDB 数据库和数据库服务器的一些信息。 我正在使用 3 mongo shell 方法,如下所示。

app.get('/api/server-info', async function(req, res)
{
  var dbVersion = await client.db("MSSMTDB").version();
  var dbHostInfo = await client.db("MSSMTDB").hostInfo();
  var dbStats = await client.db("MSSMTDB").stats(); 

  var obj =
  {
    "dbVersion": dbVersion,
    "hostInfo": dbHostInfo,
    "dbStats" : dbStats
  };
  res.json(obj);
});

链接到此处的文档。

不幸的是,只有 db.stats() 方法对我有用,而其他两个函数正在抛出“不是 function 错误”。

经过一番调查,我发现我的 mongodb nodejs 驱动程序版本是“3.1”,并且在其文档中找不到 version() 和 hostInfo() 方法。 甚至即将发布的版本(4.0)似乎也没有这些功能。

这个问题有什么解决方案吗?

这里的问题是来自 MongoDB Node.js 驱动程序的Db class没有对应于 Mongo Z29591C998B1E41 的方法version()hostInfo()

请根据您的需要考虑以下替代方案:

  1. 使用Db.command
const dbHostInfo = await db.command({hostInfo: 1});
  1. 使用Admin.serverInfoAdmin.serverStatus
const serverInfo = await db.admin().serverInfo();
const serverStatus = await db.admin().serverStatus();

const dbVersion = serverInfo.version;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM