【发布时间】:2020-03-28 23:36:15
【问题描述】:
我导出了 NODE_ENV=local 并在 datasources.local.json 中定义了我的 mongo 数据源
"mongo": {
"host": "localhost",
"port": 27017,
"url": "mongodb://localhost:27017/mydb",
"database": "mydb",
"password": "",
"name": "mongo",
"user": "",
"connector": "mongodb"
},
但是数据库名称被创建为“测试”。我也在 datasources.json 中尝试过,但它仍然是一样的。我需要数据库名称为“mydb”。请帮忙
【问题讨论】:
-
我需要数据库名是'mydb';您至少可以通过两种不同的方式实现这一目标。 1. 在 mongo shell 中直接使用关键字
use mydb,这将自动分配命名空间并为您创建数据库。或者 2. 您可以使用驱动程序动态连接到您的 mongodb(而不是 mongo shell),同时将 localhost、port 和 db 名称作为字符串传递。这是你要问的还是你想使用一些复杂的函数来分配你的数据库名称? -
数据库是在第一次写操作时创建的,而不是在连接时创建的。尝试将文档插入
mydb数据库中的任何集合。test数据库是默认数据库,在安装数据库时创建,而不是由您的应用程序创建。 -
@rags2riches 我试过
use mydb,但它仍然会写入测试。我不想用一些复杂的函数,只是Model.create()将数据写入测试db -
@AlexBlex 我还创建了 mydb 并创建了一个空集合。但是应用程序仍然写入测试。即使我删除了测试数据库,应用程序仍然会创建测试数据库。所以,我不认为它是在安装 mongo 时创建的,应用程序本身正在创建测试数据库
-
@LalithMohan 你能分享一些代码来重现这个问题吗?如果您在运行应用程序之前打开与
mongd的连接,然后从您的shell 连接到您的mongod并运行use whatever,则默认情况下会将命名空间whatever分配给您的本地数据库,然后可以引用db。