удалите/обновите значение ссылки из узла документа js и mongodb

#node.js #mongodb #express #mongoose

#node.js #mongodb #экспресс #мангуст

Вопрос:

У меня есть две модели Подключения и Клиент. На клиента ссылаются в Связи. Я хочу удалить клиента из документа клиента и удалить или обновить ссылку на клиента из подключения

модель клиента-это

 const mongoose = require('mongoose')   const Customer = mongoose.model('Customer', {  cusName: {  type: String,  required: true,  trim: true  },  nic: {  type: String,  default: false  },  cNumber: {  type: String,  default: true  },  cBranch: {  type: String,  default: true  },  cAddress: {  type: String,  default: true  },  cEmail: {  type: String,  default: true  },  })    module.exports = Customer  

и модель подключения является

 const mongoose = require('mongoose')  const Customer = mongoose.model('Customer', {  cusName: {  type: String,  required: true,  trim: true  },  nic: {  type: String,  default: false  },  cNumber: {  type: String,  default: true  },  cBranch: {  type: String,  default: true  },  cAddress: {  type: String,  default: true  },  cEmail: {  type: String,  default: true  }, })  module.exports = Customer  

на соединение снова ссылается платежная модель , в которой быстро реализована операция удаления следующим образом.

 router.delete('/customer/:id', async (req, res) =gt; {  try {  const customer = await Customer.findByIdAndDelete(req.params.id)   if (!customer) {    return res.status(404).send()       }   res.send(customer)  } catch (e) {  res.status(500).send()  } })  

Ответ №1:

сначала добавьте поле идентификатора клиента в связи

 const mongoose = require('mongoose')  const Customer = mongoose.model('Customer', {  ...  cusId: {  type: String,  required: true,  },  ... })  module.exports = Customer  

а во-вторых, удалите и клиентов, у которых один и тот же CusId

 router.delete('/customer/:id', async (req, res) =gt; {  try {  const customer = await Customer.findByIdAndDelete(req.params.id)  const connection = await Connection.deleteMany({ cusId: req.params.id })  if (!customer) {  return res.status(404).send()   }   res.send({ message: "User has been deleted" })  } catch (e) {  res.status(500).send()  } })  

Комментарии:

1. это сработало 🙂 .спасибо