代码之家  ›  专栏  ›  技术社区  ›  Khalid Taha

Mongoose.Connect不存在时不创建数据库

  •  5
  • Khalid Taha  · 技术社区  · 6 年前

    我是Nodejs的新手,我正在学习如何使用Nodejs和Mongoose库连接MongoDB。如我所知,当我连接到一个名称为的数据库时,如果这个名称为的数据库不存在,那么Mongoose将自动创建它,但它不是与我一起创建的。 这是我的代码:

    const mongoose = require("mongoose");
    
    mongoose.connect("mongodb://127.0.0.1:27017/mongo-test", {useNewUrlParser: true})
    .then(() => console.log("Connected"))
    .catch(err => console.log(err));
    

    Mongoose版本: ^5.2.5

    2 回复  |  直到 6 年前
        1
  •  7
  •   Pedro Nunes    6 年前

    我不是100%确定,但您还需要创建一个记录,以便它创建数据库。 显然,仅在连接字符串上指定数据库名称是不够的。

    干杯

        2
  •  4
  •   Marcus Vinicius Sousa Vieira    6 年前

    佩德罗是对的,当您将第一个文档保存在数据库中时,Mongoose将为该文档创建数据库和集合。

    在这种情况下,数据库的名称将是连接中指定的名称 迈阿普 :

    mongoose.connect('mongodb://localhost:27017/myapp');
    

    Mongoose文档: Connections

    Mongoose用 复数名称 .

    如果您有一个具有油箱名称的模型,则集合名称将为 坦克 :

    var schema = new mongoose.Schema({ name: 'string', size: 'string' });
    var Tank = mongoose.model('Tank', schema);
    

    第一个参数是模型集合的唯一名称 是为了。Mongoose会自动查找 型号名称。因此,对于上面的示例,模型水箱用于 坦克 数据库中的集合。

    Mongoose文档: Model