Как удалить все ссылки id в mon goose nodejs? - PullRequest
0 голосов
/ 28 мая 2020

shopSchema

const shopSchema = new Schema({
  shopName: {
    type: String,
    required: true
  },
  foodId: [{
    type: Schema.Types.ObjectId,
    ref: 'Food',
  }]
});

foodSchema

const foodSchema = new Schema({
  foodName: {
    type: String,
    required: true
  },
  image: {
    type: String,
    required: true
  },
  price: {
    type: String,
    required: true
  },
  shopName: {
    type: String,
    required: true
  },
  shopId:{
    type: Schema.Types.ObjectId,
    ref: 'Shop',
    required: true
  }

});

В этом случае, если я удалю food из foodchema, как удалить указанный foodid в shopchema

    exports.postdelfood=(req,res,next)=>{
  const fid=req.params.foodId;
  console.log(fid);
  return Food.deleteOne({_id:fid})
  .then(result=>{
    console.log('deleted');
    res.status(200).json({message:'success'});
  })
  .catch(err=>{
    res.status(500).json({message:'failed'});
  })

};

есть ли какая-нибудь функция в mon goose для удаления всех идентификаторов ссылок, если мы удалим кого-либо из идентификаторов?

Ответы [ 2 ]

0 голосов
/ 29 мая 2020
exports.postdelfood=(req,res,next)=>{
  const fid=req.params.foodId;
  const sid=req.params.shopId;

  return Food.deleteOne({_id:fid})
  .then(result=>{
    console.log(fid);
    Shop.update({_id:sid},{ $pull: { foodId: fid }})
    .then(resu=>{
      console.log(resu);
        console.log('deleted');
      res.status(200).json({message:'success'});

      });    
  })
  .catch(err=>{
    res.status(500).json({message:'failed'});
  });

};

Я получил ответ, но есть ли какая-нибудь функция в mon goose для удаления всех ссылочных идентификаторов, если мы удалим кого-либо из идентификаторов?

0 голосов
/ 28 мая 2020

Я не понимаю, если вы пытаетесь удалить всю запись, просто используйте

Shop.deleteMany({foodID:fid})

, если вы пытаетесь просто удалить параметр foodID из записи, просто установите для него значение NULL с помощью

Shop.updateMany({foodID:fid},{foodID:null})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...