Suponiendo que tengo los siguientes esquemas:
Foro.js
var mongoose = require('mongoose') const User= require('../user/UserModel'); const Schema=mongoose.Schema; const ForumSchema = new mongoose.Schema({ forumName: { type: String }, forumDescription: { type: String }, ownerID: { type: Schema.Types.ObjectId, required: true, ref: 'User' }},{ timestamps: true }); const Forum = mongoose.model("Forum", ForumSchema); module.exports = Forum;Usuario.js
var mongoose = require('mongoose') const bcrypt = require('bcrypt') const UserSchema = new mongoose.Schema({ id: Number, userID: { type: String, unique: true }, userName: String, password: String, isAdministrator: { type: Boolean, default: false } }, { timestamps: true }); const User = mongoose.model("User", UserSchema); module.exports = User;la función para eliminar un usuario:
function deleteByUserId(req, res, next) { let userIDD = req.body.userID; User.deleteOne({ userID: userIDD }, function(err, result) { if (err) { console.log("Fehler bei Suche: " + err) } else { console.log("Alles gut gelaufen."); res.send(result) } }) }el objeto mangosta :
{ "_id": "61886d45235d4829c7e46a3c", "userID": "admin", "userName": "Default Administrator Account", "password": "$2b$10$20QgJgZWXyFOdJL94C1EVOojBBmzKH7sp/6SADG8z0rwAQ6QbSXc.", "isAdministrator": true, "createdAt": "2021-11-08T00:20:21.422Z", "updatedAt": "2021-11-08T00:20:21.422Z", "__v": 0 }El OwnerID en el esquema del foro es un objeto de usuario almacenado. El objeto de usuario que creó el foro. Required=true es porque un usuario debe crear un foro. ¿Cómo puedo eliminar el objeto del foro después de eliminar al usuario?
Tendrá que usar algún identificador único para "coincidir" entre el usuario y sus foros. Digamos que este identificador único es la ID de usuario, por lo que si la ID de usuario es '1234', supongo que consultar la colección de foros para ownID.userID: '1234' debería proporcionarle todos los foros que este usuario ha creado.
Por lo tanto, solo necesita agregar una consulta simple para la colección de foros también:
Forum.deleteMany({"ownerID.userID": userIDD})