我在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”的新集合...我如何告诉猫鼬将其保存到固定集合中?
答案 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'});