Итак, у меня есть классы Model
, которые содержат массив людей, которые будут посещать занятия, я пытаюсь удалить людей из классов.
Итак, это Model
:
const mongoose = require('mongoose');
const classMembersSchema = mongoose.Schema({
userId: {
type: mongoose.Schema.Types.ObjectId,
ref: 'user',
}
})
const classSchema = mongoose.Schema({
location: {
type: String,
required: true
},
type: {
type: String,
required: true
},
name: {
type: String,
required: true
},
time: {
type: String,
required: true
},
classMembers: [classMembersSchema]
});
module.exports = mongoose.model('createClass', classSchema);
Я упомянул массив classMembers, из которого я пытаюсь удалить участников.classMembers: [classMembersSchema]
.
Это axios.delete
:
deleteClassHandler = () => {
axios.delete('/api/classes/' + this.props.id + '/user/' + this.props.userId)
.then(response => {
console.log(response);
})
.catch(error => {
console.log(error);
});
}
Это route
:
router.delete('/:id/user/:userId', ClassesController.deleteUser);
Это controller
:
exports.deleteUser = (req, res) => {
GymClass.findById({
_id: req.params.id
}, 'classMembers', (err) => {
if (err) {
res.status(401).json({
message: "Error Occured!"
})
} else {
GymClass.findByIdAndDelete({
"classMembers.userId" : mongoose.Types.ObjectId(req.params.userId)
}, (err) => {
if(err) {
console.log('Keeps hitting here!');
res.status(401).json({
message: "Error Occured!"
})
} else {
res.status(200).json({
message: "Success!"
})
}
});
}
})
}
Все работает нормально, пока не достигнет console.log('Keeps hitting here!');
В начале функции req.params.id
, который является идентификатором класса, который мы хотим изменить, и req.params.userId
, который является пользователем, которого мыЯ хочу удалить из массива внутри модели действительно правильные значения, но когда он добирается до этого шага, он дает мне Error
.
Я думаю, что это может быть, что он не находит это:
GymClass.findByIdAndDelete({
"classMembers.userId" : mongoose.Types.ObjectId(req.params.userId)
Так как он находится в массиве в пределах classMembers
.Любая идея или совет, чтобы заставить это работать?Большое спасибо.