繁体   English   中英

将数据发布到子文档 - Mongoose Express

[英]Post data to Subdocument - Mongoose Express

谷歌搜索后......

使用 Mongoose/Express 保存数据我有问题:无法将数据发布到子文档或嵌套文档

这是我的 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},
        }
    ],
// ...
})

这是邮政路由器:

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

我的问题是:

如何将我的数据发布到子文档? (我的问题在于经验和教育模式)

在 request 的 req.body.experience 中,在第二次体验之前有一个1所以改变 body 的格式是这样的:

[
  {
    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"
  }
]

这是我收到的数据,但实际上无法保存:

{
  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'
    }
  ]
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM