我创建了Gym Web App来获取经验,但到了一个无法解决该问题的阶段。我有用户和GymClasses。
预订体育课时,会将userId
保存在classMembers array
中。然后还将附加到user
的类存储在其架构中。
所以问题是,当尝试删除已注册用户的类时,它会按预期方式删除该类,但是我需要获取已签署到该类中的每个userId
并删除{{1} }他们的上课。
这是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
遍历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);
});
我没有比这更进一步,任何示例或帮助将不胜感激!