从两个不同的架构中删除

时间:2018-11-19 13:32:00

标签: javascript mongodb express mongoose

我创建了Gym Web App来获取经验,但到了一个无法解决该问题的阶段。我有用户和GymClasses。

预订体育课时,会将userId保存在classMembers array中。然后还将附加到user的类存储在其架构中。

所以问题是,当尝试删除已注册用户的类时,它会按预期方式删除该类,但是我需要获取已签署到该类中的每个userId并删除{{1} }他们的上课。

这是classId的图像:

enter image description here

如您所见,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);
          });

我没有比这更进一步,任何示例或帮助将不胜感激!

0 个答案:

没有答案