Как вручную организовать каскадное удаление в Mongodb?

У меня в Mongodb есть две коллекции: faculties и pulpits
документ в faculties:

{"faculty":"IT",
"faculty_name":"Information Technology"};  

документ в pulpits:

{"pulpit":"ИСИТ",
"pulpit_name":"Инф системы и технологии",
"faculty":"IT"}

То есть кафедра pulpits принадлежит факультету faculties. вот код, где происходит удаление факультета из mongo:

const client = new MongoClient(uri)
let delete_one = async params => {   

    await client.connect()
    console.log('MongoDB: connectied successfuly')

    let collection = await client.db('bstu').collection(params['name'])
    let deleteResult = await collection.findOneAndDelete(params['condition'])  
    return deleteResult['value']
}  

и вот здесь проверяется url запроса и метод delete. в url передается значение faculty из документа, происходит удаление одного факультета

else if (path_name.startsWith('/api/faculties')) {
        let params = {
            name: 'faculty',
            condition: { faculty: path_name.split("/").reverse()[0] }
        }
        console.log(params);
        delete_one(params)
            .then(data => {
                res.writeHead(200, { 'content-type':'text:plain; charset=utf-8' })
                res.end(JSON.stringify(data))                
            })
    }

как мне можно здесь добавить еще и удаление кафедры(pulpit) в которой значение faculty такое же, что и передаваемое в url.
по сути, нужно реализовать каскадное удаление, но в mongodb оно не поддерживается. чтобы при удалении факультета удалялись все кафедры, которые к нему принадлежат.


Ответы (0 шт):