如何删除mongoose模式中的引用值

const UniversitySchema = new Schema({ university_name: { type:String, }, status: { type: String } }); const CollageSchema = new Schema({ collage_name: { type:String, required: [true,'Name field is required'] }, university_id: { type: [{ type: Schema.Types.ObjectId , ref: 'university' }] }, type: { type:String } }); 

 router.delete('/university/:id',function(req,res,next){ University.findByIdAndRemove({_id:req.params.id}).then(function(detail){ res.send(detail); }); }); 

我在CollageSchema引用了UniversitySchema _id ,如果我删除了任何一个大学,相应的拼贴应该被删除。 这个怎么做?

使用Promise.all()对collages集合进行额外的mongo调用:

 router.delete('/university/:id',function(req,res,next){ const ObjectId = require('mongodb').ObjectId; const _id = ObjectId(req.params.id); const removeUniversity = University.findByIdAndRemove({ _id: _id }); const removeCollage = Collage.remove({ university_id: _id }); Promise .all([removeUniversity, removeCollage]) .then(function(values) { const detail = values[0]; res.send(detail); }) .catch((err) => console.error(err)); });