Как вручную организовать каскадное удаление в 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 оно не поддерживается. чтобы при удалении факультета удалялись все кафедры, которые к нему принадлежат.