Публикация вложенной схемы Mon goose в MongoDB - PullRequest
0 голосов
/ 08 июля 2020

Мне нужно опубликовать вложенную схему в мою MongoDB. моя схема mon goose выглядит так:

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

, и я хочу сделать запрос POST для mongoDB следующим образом:

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

кто-нибудь заметит здесь ошибку? Я попробовал, но вложенный объект не смог.

1 Ответ

0 голосов
/ 09 июля 2020

Вы можете сначала попробовать создать член локально, а затем передать его как целый объект:

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 прямо сейчас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...