模型自动保存到“(模型名称)+ s”集合中

时间:2019-01-28 18:30:21

标签: javascript mongodb mongoose

我在MEAN架构(mongo + express + angular + nodejs)上使用mongoose(最新版本,全新安装),并且正在将一些数据保存到mongodb中。 我有一个名为“ cogestione”的数据库和三个集合:“ ragazzi”,“ sedi”和“ corsi”。 我想在集合“ ragazzi”中保存Ragazzo类型的数据。我连接:

mongoose.connect("mongodb+srv://admin:************.mongodb.net/cogestione?retryWrites=true", { useNewUrlParser: true })
    .then(() => console.log("Connection to database correctly happened"))
    .catch((err) => console.log(err))

,一切顺利。在另一个文件中,我有模型:

const mongoose = require("mongoose");

const postSchema = mongoose.Schema(
  {
    nome: {
            type: 'String'
        },
        cognome: {
            type: 'String'
        },
        classe: {
            type: 'String'
        },
        email: {
            type: 'String'
        }
  }
  );

module.exports = mongoose.model(“ ragazzo”,postSchema);

,我在最后一行将其导出。然后,回到应用程序中,我使用以下命令将其发送到数据库:

const post = new Ragazzo({
    nome: req.body.nome,
    cognome: req.body.cognome,
    classe: req.body.classe,
    email: req.body.email
  });
  console.log(post);
  post.save()
    .catch((err)=>{console.log(err)});
  res.status(201).json({message : "Post added"});

问题是它不会将文档保存到“ ragazzi”集合中,而是创建了一个名为“ ragazzos”的新集合...我如何告诉猫鼬将其保存到固定集合中?

2 个答案:

答案 0 :(得分:0)

您的问题是您使用此行

apigClientFactory not defined

但不导出编译的模型..您应该像这样导出编译的模型

module.exports = mongoose.model("ragazzo" , postSchema);

然后在路由器中将其导入,

const Post = module.exports = mongoose.model("ragazzo" , postSchema);

这将以您希望它交配的方式工作。.欢呼

答案 1 :(得分:0)

像下面一样创建您的猫鼬模式。

const mongoose = require("mongoose");

const postSchema = mongoose.Schema(
  {
    nome: {
            type: 'String'
        },
        cognome: {
            type: 'String'
        },
        classe: {
            type: 'String'
        },
        email: {
            type: 'String'
        }
  }, {collection: 'ragazzi'});