MongoDB 将我的数据库自动设置为“测试”。如何改变呢?

le *_*huy 20 mongodb node.js express

mongoose.connect(process.env.DATABASE_URL, {useNewUrlParser: true});
const MyModel = mongoose.model(mymodel, new Schema({ name: String }));
Run Code Online (Sandbox Code Playgroud)

这将创建一个名为“test”的数据库和一个名为“mymodel”的集合。如何更改数据库的“测试”名称?

小智 55

如果您要在远程 mongoDB 服务器上发布数据,请确保在连接 url 中的“?retryWrites”之前写入数据库名称。可能会写为“测试”或什么也不写。如果存在“test”,请将其替换为您的数据库名称,如果没有,请在“?”之前写入数据库名称 标记。

mongodb+srv://<username>:<password>@cluster0.vbaw8.mongodb.net/<database_name>?retryWrites=true&w=majority
Run Code Online (Sandbox Code Playgroud)


Ema*_*eri 9

问题是您没有在连接 URI 中指定数据库名称,也没有在连接选项中指定数据库名称:

const connctionUri = `mongodb://localhost:27017/database_name`
connect(connectionUri, connectionOptions).then(...).catch(...)
Run Code Online (Sandbox Code Playgroud)

或者这是替代方案,

const connectionpOptions = {
  dbName: `your database name`,
  useNewParser: true,
  useUnifiedTopology: true,
  .
  .
  .
}
const connectionUri = `mongodb://localhost:27017`
connect(connectionUri, connectionOptions).then(...).catch(...)
Run Code Online (Sandbox Code Playgroud)


Sai*_*msi 4

您必须更改连接字符串。process.env.DATABASE_URL 必须更改。在 .env 文件中,如果有的话,将 DATABASE_URL 更改为

mongodb://localhost:27017/myapp
Run Code Online (Sandbox Code Playgroud)

这里数据库的名称将是 myapp。现在您可以将其命名为任何您想要的名称,而不是 myapp。只需替换 myapp 的文本即可。

const MyModel = mongoose.model('Collection Name', new Schema({ name: String }));
Run Code Online (Sandbox Code Playgroud)

为您的集合提供任何名称选择来代替字符串集合名称,而不是 mymodel。即使您给出大写的集合名称,MongoDB 也会以小写字母保存集合。