gpt4 book ai didi

node.js - Nodejs :Array data not added in mongodb

转载 作者:太空宇宙 更新时间:2023-11-03 23:17:44 24 4
gpt4 key购买 nike

这是我的模型profile.js

var mongoose = require('mongoose');

const ProfileSchema = mongoose.Schema({
educationinfo: [{
universityname:
{
type: String,
required: true
},
degree:
{
type: String,
required: true
},
coursecompletionyear:
{
type: String,
required: true
},
collegename:
{
type: String,
required: true
},
specialization:
{
type: String,
required: true
},
marks:
{
type: String,
required: true
},
courselevel:
{
type: String,
required: true
}
}]
});

const Profile = module.exports = mongoose.model('Profile', ProfileSchema);

这是我的 route.js post 函数

router.post('/addprofiledetails', function(req, res, next) {
let newProfile = new Profile({
$educationinfo:[{
universityname:req.body.universityname,
degree:req.body.degree
}]
});
newProfile.save((err, profile) => {
if (err) {
res.json({ msg: 'Failded to add profiledetails' });
} else {
res.json({ msg: 'successfully add profile details' });
}
});
});

我在 post 函数中收到成功消息,但数据未添加到 mongodb 中。我不知道我哪里做错了。请帮助我。

在 mongoDB 中我得到了这样的数据,

{
"educationinfo": [],
"_id": "5bed14b93a107411a0334530",
"__v": 0
}

我想要educationinfo内的详细信息,请帮忙。

最佳答案

You need to change schema definition and query.

1.从架构中删除 required 或将 required 应用于您必须提供值的字段。

educationinfo: [{
universityname:
{
type: String,
// required: true
},
degree:
{
type: String,
//required: true
},
coursecompletionyear:
{
type: String,
// required: true
},
collegename:
{
type: String,
// required: true
},
specialization:
{
type: String,
//required: true
},
marks:
{
type: String,
// required: true
},
courselevel:
{
type: String,
// required: true
}
}]

2.将 $educationinfo 更改为 educationinfo

educationinfo:[{
universityname:req.body.universityname,
degree:req.body.degree
}]

关于node.js - Nodejs :Array data not added in mongodb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53314002/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com