首页 > 解决方案 > 使用 API 调用创建新数据库

问题描述

我想在 API 调用时创建一个新数据库。我已经连接到一个主数据库。

我试过使用 mongoose.connect() 方法。它给了我一个积极的回应。但是当我签入 mongo 控制台时,我没有找到新创建的数据库。

这是我的代码。

const connectionString = `mongodb://${process.env.DB_HOST}:${
    process.env.DB_PORT
  }/client_${Math.random()
    .toString(36)
    .substring(2, 8)}`;

  mongoose.connect(
    connectionString,
    {
      autoReconnect: true,
      reconnectTries: 60,
      reconnectInterval: 10000,
      useNewUrlParser: true,
      useCreateIndex: true
    },
    (error) => {
      if (error) {
        console.log(error);
      } else {
        console.log('Connected');
      }
    }
  );

希望你明白我的意思。寻找解决方案。

标签: node.jsmongodbexpressmongoose

解决方案


根据 mongodb 文档:

如果数据库不存在,MongoDB 会在您首次存储该数据库的数据时创建该数据库。因此,您可以切换到不存在的数据库并在 mongo shell 中执行以下操作。关联

这对于 mongo-shell 也是如此,如果您确实use mydb;创建了一个并立即执行show dbs;它不会显示,除非您为它创建一些数据,mydb例如createCollection(), insert() etc.

所以你的代码没问题,因为connect()它和use db;. 除非您为该数据库创建一些数据,否则您不会在 mongo 控制台中看到它。


推荐阅读