Как создать маршрут для обновления поля массива в коллекцию (RestAPI Nodejs Express Пн goose)? - PullRequest
1 голос
/ 23 апреля 2020

Как создать маршрут для обновления / удаления поля массива из коллекции. Схема коллекции и массива:

 var activitySchema = new Schema({
title: String,
categoryId: String,
mainLocation: String,
trail: [{
    description: String,
    longitude: Number,
    latitude: Number
}],
nbAdults: Number,
nbTeens: Number,
nbKids: Number,
lowestPrice: Number,
highestPrice: Number

...

Как я добавил действие:

// ADD NEW ACTIVITIES 
router.post('/',(req, res) =>{
    var activity = new Activity({
        title:req.body.title,
        categoryId:req.body.categoryId,
        mainLocation:req.body.mainLocation,
        nbAdults:req.body.nbAdults,
        nbTeens:req.body.nbTeens,    
        nbKids:req.body.nbKids,
        lowestPrice:req.body.lowestPrice,    
        highestPrice:req.body.highestPrice,             
        trail:[],
        activityStats:[],
        options:[],
        notices:[],
        images:[],
        schedules:[],
        created_at: new Date()
    })
    user.save()     
    .then((data)=>{
        res.send({
            success:true,
            data:data,
            message:"Activity created"
        });
    }).catch((err)=>{
        res.send({
            success:false,
            error:err
        })
    })
})

Как я добавил TRAIL ARRAY:

//ADD NEW TRAIL//
router.post('/:id/trail',(req, res)=>{

    var data = {
      description:req.body.description,
      longitude:req.body.longitude,
      latitude:req.body.latitude,
      created_at: new Date()
    }

    Activity.findById(req.params.id, (err, activity) => {
        activity.trail.push(data);
        activity.save((err, data)=>{
            if(err) res.send({
                success:false,
                error:err
            })
            res.send({
                success:true,
                data:data,
                message:"Trail added",
            })
        })
    })
});

Что мне нужно сделать, это добавить маршрут, который обновляет массив или удаляет его. Массив является одним полем коллекции действий. Что я должен использовать в качестве конечной точки (Как мне написать идентификатор трейла)?

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