Как выложить sh вложенный документ в массив в mon goose? - PullRequest
0 голосов
/ 29 марта 2020

Я пытаюсь добавить массив шагов в топи c. но каждый раз я делаю запрос на почту. Он хранит пустой массив только с _id. вот моя модель:

const mongoose = require('mongoose');
//const Step = require('./Step');

const StepSchema = mongoose.Schema({
    title: String,
    status: String,
    date: {
        type: Date,
        default: Date.now
    }
});

const TopicSchema = mongoose.Schema({
    name: String,
    description: String,
    steps: [StepSchema],
    date: {
        type: Date,
        default: Date.now
    }
});

module.exports = mongoose.model('Topic', TopicSchema);

Вот мой роутер. js:

const express = require('express');
const router = express.Router();
const Topic = require('../models/Topic');

router.post('/', async (req, res) => {
    const topic = new Topic({
        name: req.body.name,
        description: req.body.description,
    });
    topic.steps.push({
        title: req.body.title,
        status: req.body.status
    })
    try {
        const saveTopic = await topic.save();
        res.json(saveTopic);
    } catch (err) {
        res.json({ message: err });
    }
});

module.exports = router;

вот мой запрос почтальона:

{
    "name": "t",
    "description": "y",
    "steps": {
        "title": "a",
        "status": "b"
    }
}

Заранее спасибо.

1 Ответ

0 голосов
/ 29 марта 2020

В вашем запросе POSTMAN заголовок и статус заключены в steps объект.

Вам нужно сделать:

topic.steps.push({
    title: req.body.steps.title,
    status: req.body.steps.status
});

вместо:

topic.steps.push({
    title: req.body.title,
    status: req.body.status
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...