Как можно размещать и заполнять задачи (без реляционного массива) внутри службы? todos: нет реляционного вложенного массива. сервис: объект модели - PullRequest
0 голосов
/ 20 октября 2019

Я пытаюсь вставить один документ под названием «служба» из коллекции «службы». Я хочу видеть задачи внутри служебного объекта, но вижу только идентификатор задачи. Можете ли вы помочь мне, пожалуйста?

это мой код:

схема:

const mongoose = require('mongoose');
const { Schema } = mongoose;

const serviceSchema = new Schema({
  name: String,
  description: String,
  pricePerHour: Number,
    todos: [
         {
           name: String,
           description: String,
            isDone: Boolean
          }],
            createdAt: Date,
            updatedAt: Date
                 });

       mongoose.model('services', serviceSchema);

это мои почтовые услуги

 app.post('/api/services', async (req, res) => {
      const { name, description, pricePerHour, todos} = req.body;

       const service = new Service({
                 name,
                 description,
                 pricePerHour,
                 todos: [
                         {
                          name: todos.name,
                          description: todos.description,
                          isDone: todos.isDone
                          }
                        ]
                           })

              try {
                  let newService = await service.save(); 

                  res.status(201).send(newService); 
                  } catch (err) {
                                 if (err.name === 'MongoError') {
                                        res.status(409).send(err.message);
                                                                }

                                res.status(500).send(err);
                                                        }
                                                          });

Каквы видите, я вижу только идентификатор todos внутри каждого сервиса.

Итак, как я могу опубликовать сервис без реляционного вложенного массива и видеть каждое содержимое массива todos внутри каждого объекта сервиса?

1 Ответ

0 голосов
/ 20 октября 2019

Если ваша структура req.body совпадает со схемой модели сервиса, вы создаете свой сервисный объект по маршруту post следующим образом:

  const service = new Service({
    name,
    description,
    pricePerHour,
    todos
  });

И ваш req.body должен работать так:

{
  "name": "service 3",
  "description": "maintenance",
  "pricePerHour": 855,
  "todos": [{ "name": "todo 1", "description": "description 1", "isDone": true },
            { "name": "todo 2", "description": "description 2", "isDone": false}
  ]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...