MongoDB及Mongoose自动使用test数据库,如何修改数据库名称?
嘿,我来帮你搞定这个默认数据库的问题!其实修改MongoDB默认的'test'数据库很简单,分两种场景详细说明:
一、直接使用MongoDB驱动时修改默认数据库
当你连接MongoDB时,如果没指定数据库,它会自动用'test'。要改的话,只需要在连接字符串末尾加上你想要的数据库名称就行。
比如原本的连接地址是:
mongodb://localhost:27017
改成:
mongodb://localhost:27017/your_custom_database
这样连接后就会自动切换到your_custom_database数据库——如果这个数据库还不存在,MongoDB会在你首次写入数据时自动创建它。
二、使用Mongoose时修改默认数据库(对应你的代码场景)
看你给出的代码,问题出在process.env.DATABASE_URL这个环境变量里的连接字符串没有指定数据库名,所以Mongoose默认用了'test'。有两种方式修改:
- 方式一:修改连接字符串
把DATABASE_URL的值改成带数据库名的格式,比如:
mongodb://localhost:27017/your_custom_database
这样调用mongoose.connect()时,就会直接连接到你指定的数据库。
- 方式二:通过连接选项指定
如果不想改连接字符串,也可以在mongoose.connect()的配置选项里加dbName参数,明确指定数据库名:
mongoose.connect(process.env.DATABASE_URL, { useNewUrlParser: true, dbName: 'your_custom_database' // 这里设置你想要的数据库名 }); const MyModel = mongoose.model('mymodel', new Schema({ name: String }));
这样不管连接字符串里有没有指定,Mongoose都会优先使用你设置的dbName作为数据库名称,你的模型也会自动关联到这个数据库下的mymodel集合。
内容的提问来源于stack exchange,提问作者le huy
相关产品推荐
相关产品推荐

