【问题标题】:loopback 3 creating only test database for mongoloopback 3 只为 mongo 创建测试数据库
【发布时间】: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

标签: node.js mongodb loopback


【解决方案1】:

对我来说解决问题的方法是将对象的名称设置为“db”而不是“mongo”或“mongods”。

"db": {
  "host": "localhost",
  "port": 27017,
  "url": "mongodb://localhost:27017/mydb",
  "database": "mydb",
  "password": "",
  "name": "mongo",
  "user": "",
  "connector": "mongodb"
},

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 2012-04-03
    • 1970-01-01
    • 2018-09-03
    • 2023-01-28
    • 1970-01-01
    相关资源
    最近更新 更多