当前位置: 首页 > 知识库问答 >
问题:

节点。js和管理MongoDB数据库[重复]

段干飞翮
2023-03-14

我需要你的建议。

我想通过rest API(node.js)处理多个MongoDB数据库的服务器,并对它们进行管理。

如何管理我的数据库?当服务器启动不是一个好主意时,连接到所有数据库。连接数据库以在数据库中创建文档,然后断开连接听起来也不是个好主意。。。那我该怎么做呢?使用连接存储阵列,并在几分钟后断开连接?你怎么认为?

共有1个答案

靳祺然
2023-03-14

是的,我可能会做一些类似于你描述的事情。我不能告诉你这段代码是否功能齐全,但这里有五分钟的时间:

class TimedConnection {
  constructor(uri) {
    this.uri = uri;
    this._connected = false;
    this.disconnect = this.disconnect.bind(this);
  }

  connect() {
    return new Promise((resolve, reject) => {
      if (!this._connected) {
        const db = this.db = mongoose.createConnection(this.uri);

        db.once('open', resolve());
        // whatever
      }

      clearTimeout(this._connectionTimeout);
      this._connectionTimeout = setTimeout(this.disconnect, 300000)

      return resolve(this.db);
    })
  }

  query() {
    this.connect().then((db) => {
      // something with `db`
    })
  }

  disconnect() {
    this.db.disconnect();
    this._connected = false;
  }
}

const connectionMap = {
  objectsDatabase: new TimedConnection('mongodb://whatever'),
  personsDatabase: new TimedConnection('mongodb://whateverthing'),
  ...
};
 类似资料:
  • 我对这两个节点都不熟悉。js和MongoDB,但我已经设法将SO和mongo的文档中的一些部分整合在一起。 Mongo documentetion给出了一个例子: 如果我只需要在一个地方的一个函数中使用数据库,这看起来很好。在SO上搜索和阅读表明,我不应该每次都打开一个新连接,而是使用一个池并重用我第一次得到的数据库对象。这个答案在SO上很丰富,但我不确定如何首先获取DB对象,然后如何重用它。 假

  • 问题内容: 以下代码使我在节点js中出现异常:“需要删除或更新” 由于我指定了更新操作,因此无法解决问题。 问题答案: 节点驱动程序中的语法与外壳程序中的语法不同,这是您使用的语法。 有一个单独的功能

  • 我有两个表有下面的模式,我想从用户表中获取用户名和密码,从信息表中获取全名。 var infoSchema=mongoose.Schema({khatam_id:String,user_id:String,fullname:String,}); var usersSchema=mongoose.Schema({user\u id:String,username:String,password:St

  • 我是wordpress的新手,在管理数据库方面有困难。我已经安装了“管理员”插件来管理数据库。我已经创建了一个名为“usersupp_admin”的新表。现在我还创建了一个自定义模板,该模板将使用PDO语句连接到此数据库,现在的问题是在哪里可以获取主机、数据库名、用户和密码?以下是代码: 任何帮助都将不胜感激。

  • 我已经开始在一个简单的node.js应用程序中使用Q Promise包。所以我对如何在所有Promise序列完成后关闭数据库连接感兴趣。 例子: 我想在显示集合名称后关闭连接,但此匿名函数中没有db上下文。 有没有办法用promise模式处理此类案件?

  • 有人能帮我吗?我正在使用$lookup在MongoDB中加入以获取日期在日期“X”和日期“Y”之间的所有订单,chef_id是“P”。“日期”部分有问题,没有提供日期的数据。但是当我在单个查找查询中使用它时,它可以正常工作并在日期之间提供数据。但是当我使用$lookup申请加入时,它不会提供数据。这是我的查询 谁能帮帮我。 我的收藏在这里“订购”收藏 这是我的用户收藏 }