Я создал Gym Web App для опыта и пришел к этапу, когда я не могу понять, как решить эту проблему. У меня есть пользователи и GymClasses.
Когда вы записываетесь в класс гимнастики, он сохраняет userId
в classMembers array
. Затем также сохраняет класс, прикрепленный к user
в их схеме.
Таким образом, проблема заключается в том, что при попытке удалить класс, в котором зарегистрированы пользователи, он удаляет класс, как и ожидалось, но мне нужно получить каждый userId
, зарегистрированный в этом классе, и удалить classId
их посещение. классы.
Это изображения class Schemas
:
Как вы видите, Class Schema
имеет classMembers array
, который заполнен userId's
, которые зарегистрированы в классе.
Это пользовательская схема:
const bookedClassesSchema = mongoose.Schema({
classId: {
type: mongoose.Schema.Types.ObjectId,
ref: 'createClass',
},
dateBooked: {
type: Date,
}
})
const userSchema = mongoose.Schema({
name: {
type: String,
required: true
},
email: {
type: String,
required: true,
unique: true
},
password: {
type: String,
required: true
},
address: {
type: String,
required: true
},
gymLocation: {
type: String,
required: true
},
bookedClasses: [bookedClassesSchema]
});
Теперь, если подумать, то перед тем, как удалять класс, перебирайте classMembers array
grab каждый userId
переход к пользователю, и так как у нас уже есть ClassId
, который мы удаляем, то удаляем этот ClassId
от bookedClasses array
. Я не уверен, как я могу это сделать, поэтому любой совет будет отличным!
Это то, что я сделал до сих пор:
exports.deleteClass = (req, res) => {
let classId = req.params.id;
let users = [];
GymClass.findById({
_id: classId
}, 'classMembers', (res ,err) => {
if (err) {
res.status(401).json({
message: "Error Occured!"
})
} else {
res.push(users);
users.forEach(function(element) {
console.log(element);
});
users.forEach( (users.userId) => {
console.log(users.userId);
});
Я не пошел намного дальше этого, любые примеры или помощь были бы очень признательны!