Ошибка MongoDB при попытке удалить элемент массива - PullRequest
1 голос
/ 20 октября 2019

Я пытаюсь удалить элемент из массива в модели MongoDB. Вот моя модель страны:

const CountrySchema = mongoose.Schema({
    name: { type: String, required: true },
    holidays: 
        [
            {
                day: {type: Number, required: true},
                month: {type: Number, required: true},
                description: { type: String, required: true }
            },
        ],
    states: { type: [String], required: true }
});

У меня уже есть в базе данных несколько стран, и у меня есть конечная точка, которая удаляет выходной из страны. У меня есть название страны из параметров запроса и предоставление информации о празднике из POST. Например:

{
    "day": 10,
    "month": 4,
    "description": "Random party"
}

Моя функция deleteHoliday выглядит следующим образом:

function deleteHoliday(req, res) {
    var country_name = req.params.country_name;
    var n_description = new Country(req.body.description);
    let query = Country.update({ 'name': country_name }, { '$pull': { holidays: { description: n_description }}})

    query.exec( (err, holidays) =>{
        //Check if no errors and send json back
        if(err){
            res.send(err);
        }
        res.status(200).json({message:"Holiday removed successfully"});
    })
}

Я не совсем уверен, как выполнить запрос, но до того, как запрос будет выполнен, яполучить следующую ошибку:

ObjectParameterError: Параметр "obj" для Document () должен быть объектом, получен случайным участником.

Я просто хочу удалить элемент праздника с приведенным описанием. В этом случае Случайная вечеринка.

Спасибо за вашу помощь.

Ответы [ 2 ]

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

ошибка здесь,

var n_description = new Country(req.body.description);

ожидается простая строка, измените ее соответственно.

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

Извините, что допустил ошибку, вместо описания я передавал тип объекта Country.

var n_description = new Country(req.body.description);

should be

var n_description = req.body.description;

Alredy ее решил!

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