【问题标题】:Posting a Mongoose Nested Schema to MongoDB将 Mongoose 嵌套模式发布到 MongoDB
【发布时间】:2020-07-09 05:15:56
【问题描述】:

我需要将嵌套模式发布到我的 MongoDB。 我的猫鼬模式如下所示:

const projectSchema = new mongoose.Schema({
  title: String,
  code: String,
  leader: String,
  member1: {
    no: Number,
    name: String,
    desc: String,
    target: Number,
  },
  member2: {
    no: Number,
    name: String,
    desc: String,
    target: Number,
  }
}
const Project = mongoose.model("Project", projectSchema);

我想用这个向 mongoDB 发出 POST 请求:

app.post("/api/postproject", (req, res) => {
  const project = new Project({
    title: req.body.title,
    code: req.body.code,
    leader: req.body.leader,
    member1: {
      no: req.body.member1.no,
      name: req.body.member1.name,
      desc: req.body.member1.desc,
      target: req.body.member1.target
    },
    member2: {
      no: req.body.member2.no,
      name: req.body.member2.name,
      desc: req.body.member2.desc,
      target: req.body.member2.target
    }
  })
})

有人在这里发现错误吗? 我试过了,但是嵌套对象没有成功。

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    您可以尝试先在本地创建一个成员,然后将其作为整个对象传递:

    app.post("/api/postproject", (req, res) => {
      let member1 = {
        no: req.body.member1.no,
        name: req.body.member1.name,
        desc: req.body.member1.desc,
        target: req.body.member1.target
      }
      let member2 = {
        no: req.body.member2.no,
        name: req.body.member2.name,
        desc: req.body.member2.desc,
        target: req.body.member2.target
      }
      const project = new Project({
        title: req.body.title,
        code: req.body.code,
        leader: req.body.leader,
        member1: member1,
        member2: member2
      })
    })
    

    或者,您可以在发出请求之前在前端创建此类对象,然后立即使用req.body.member1

    【讨论】:

      猜你喜欢
      • 2017-07-06
      • 2013-03-03
      • 2017-09-21
      • 2014-03-02
      • 1970-01-01
      • 1970-01-01
      • 2013-03-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多