Mongoose.connect不创建数据库(如果不存在)

时间:2018-07-25 16:30:49

标签: node.js mongodb mongoose

我是NodeJ的新手,我正在学习如何使用带有Mongoose库的NodeJS连接到mongodb。据我所知,当我使用一个名称连接数据库时,如果该名称的数据库不存在,猫鼬会自动创建它,但是不会与我一起创建它。 这是我的代码:

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));

猫鼬版本:^5.2.5

2 个答案:

答案 0 :(得分:7)

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

欢呼

答案 1 :(得分:4)

Pedro是正确的,当您将第一个文档保存到数据库中时,猫鼬会创建数据库和该文档的集合。

数据库名称将是连接中指定的名称,在这种情况下为 myapp

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

猫鼬文档:Connections

猫鼬用复数名称创建收藏。

如果您的模型带有Tank名称,则收藏名称将为坦克

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

第一个参数是模型集合的单数名称   是为了。猫鼬会自动寻找您的复数形式   型号名称。因此,对于上面的示例,模型Tank用于   数据库中的坦克集合。

猫鼬文档:Model