A un haut niveau, je cherche à supprimer un document de Mongo ainsi que ses documents référencés. Jetez un oeil à schèmes exemple suivant:Suppression du document Mongo et de toutes ses références?
var studentSchema = mongoose.Schema({
email: String,
name: String,
_class: { type: String, ref: 'Class' },
books: [{ type: Schema.Types.ObjectId, ref: 'Book' }]
});
module.exports = mongoose.model('Student', studentSchema);
var classSchema = mongoose.Schema({
gradeLevel: Number,
students: [{ type: Schema.Types.ObjectId, ref: 'Student' }]
});
module.exports = mongoose.model('Class', classSchema);
var bookSchema = mongoose.Schema({
author: String,
subject: String,
pages: Number
});
module.exports = mongoose.model('Book', bookSchema);
Maintenant, ma question est double:
1. Si je veux .remove() un document de classe de ma base de données et tous les documents de l'élève fait référence à lui, Quelle est la meilleure façon de le faire? //currently looping through students with the given class id and individually removing, then finally removing the class document.
2. Si je veux .remove() un document de classe de la base de données AND tous les étudiants ET leurs livres, est-il un moyen de le faire simplement par le biais d'une instruction spéciale remove dans mongo? //Currently finding all students, removing their books, then remove themselves, then remove their referenced class.
Idéalement, je voudrais une déclaration le peut retirer un document mongo, et tout ce qui fait référence à lui, ainsi que tous les sous-références qui sous-document peut avoir. (e.g: Remove a Class and have mongo auto-remove all Students and their Books)
Est-ce possible?