2017-09-16 118 views
0

我想搜索在物體模型的ID,該機型擁有教師ID的數組如下節點JS蒙戈搜索

var Classroom = require('./classroom'); 
var Teacher = require('./teacher'); 
var ClassSectionSchema = new Schema({ 
title : String, 
teacher_id : [{type: Schema.Types.ObjectId, ref: 'Teacher'}] 

}); 

我想刪除它之前尋找每一位教師,但如果老師連接在一類部分我不想刪除它,我想如果類部分有一個老師ID以下

router.post('/delete',function(req,res){ 
var teacher_id= req.body.selected; 

Class_section.findOne({teacher_id:teacher_id},function(err,subject){ 
    if(err){ 
     console.log(err); 
     res.json({status:"error", message :"error occurred"}); 
     return; 
    }else if(subject){ 
     res.json({status:"error", message:"teacher has class"}); 
     return; 
    }else{ 
     Teacher.remove({_id:teacher_id},function(err){ 
      if(err){ 
       console.log(err); 
       res.json({status:"error", message :"error occurred"}); 
       return; 
      }else{ 
       res.json({status:"success",message: "teacher deleted"}); 
       return; 
      } 
     }) 
    } 
}) 
}) 

以前的代碼才能正常運行,但如果它有兩個老師老師的數組中ID的老師被刪除

回答

1
var mongoose = require('mongoose'); 
var ObjectId = mongoose.Types.ObjectId(); 

router.post('/delete',function(req,res){ 
    var queryObj = {}; 
    if(req.body.selected){ 
    queryObj.teacher_id = { 
     $in:[new ObjectId(req.body.selected)] 
    } 
} 

Class_section.find(queryObj,function(err,subject){ 
if(err){ 
    console.log(err); 
    res.json({status:"error", message :"error occurred"}); 
    return; 
}else if(subject.length > 0){ 
    res.json({status:"error", message:"teacher has class"}); 
    return; 
}else if(subject.length == 0){ 
    Teacher.remove({_id:teacher_id},function(err){ 
     if(err){ 
      console.log(err); 
      res.json({status:"error", message :"error occurred"}); 
      return; 
     }else{ 
      res.json({status:"success",message: "teacher deleted"}); 
      return; 
     } 
    }) 
} 
}) 
})