After googling....
Using Mongoose/Express to save data I have issues: Cannot post data to subdocument or nested document
Here is my Mongoose model:
const Users = new Schema({
firstname : {
type : String
},
password : {type : String},
phone : {type : Number},
city : {type : String},
country : {type : String},
experience : [
{
title : {type : String},
company : {type : String},
description : {type : String},
date_bg : {type : Date},
date_end : {type : Date},
}
],
education : [
{
degree : {type : String},
school : {type : String},
description : {type : String},
date_bg : {type : Date},
date_end : {type : Date},
}
],
// ...
})
And here is post router:
const addUser = async (req, res) => {
// my data from fronted is like this :
// req.body.experience is like this (same as education):
// [{title: "title experince 1", company: "title experince", date_bg: "2021-02-11", date_end: "2021-02-02", description: "title experince"}
{title: "title experince 2", company: "title experince 2", date_bg: "2021-02-10", date_end: "2021-02-08", description: "tstset"}]
const user = new Users(req.body) // This cause cast error for the *experience* and *education*
try {
await user.save()
return res.status(200).json({message : "Signin up successfully, Your account is now active!"})
} catch (error) {
return res.json({error : "Something went wrong, please try again later!", message : error})
}
}
My question is:
How to post my data to subdocument? (My problem is in the experience and education model)
in the req.body.experience of request there is a 1
before the second experience so change the format of body like this:
[
{
title: "title experince 1",
company: "title experince",
date_bg: "2021-02-11",
date_end: "2021-02-02",
description: "title experince"
},
{
title: "title experince 2",
company: "title experince 2",
date_bg: "2021-02-10",
date_end: "2021-02-08",
description: "tstset"
}
]
This is my recieve data but actually cannot saved:
{
email: 'manana04@gmail.com',
password: '$2a$10$DSpWahC5QCDEWwr1VljOXeok3awr/vVzDRcGazQsevu3H1ZgNY.pm',
firstname: 'dkfsdgk',
lastname: 'kvhdvgdjk',
job_title: 'cbhckvk5',
description: 'sdfvbilfgad',
hourly_rate: '454',
city: 'sdkvhdfvik',
country: 'hsvhdo',
education: [],
experience: [
{
title: 'Title experincev v',
company: 'dfvbhdfighfi',
date_bg: '2021-02-04',
date_end: '2021-02-17',
description: 'sdfsfsdfs'
},
{
title: 'tititititititititititititit',
company: 'dfldhkfjshdkfhsdkfshk',
date_bg: '2021-02-04',
date_end: '2021-02-16',
description: 'sdfshfdslfsdhfhs'
}
]
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.