Запрос MongoDB $ pull не работает должным образом - PullRequest
0 голосов
/ 12 июля 2020

Ребята, я хочу сделать запрос unfollow с помощью $ pull qıery, но он не работает. Как решить эту проблему?

Также этот метод отлично работает с запросом $push, когда я хочу следить за пользователем, но он не работает с $pull.

Мое приложение. js:

app.post('/unfollow/:id', function(req, res){

  User.find(req.user
  
  ).exec(function(err, user){
  
  if(err){
    console.log(err);
  }
    
    User.find({"username":req.params.id}, function(err, friend){
      
      if(err){
        console.log(err);
      }
    User.update(user,{$pull: { follow: friend}}, function(err){
      if(err){
      console.log(err);
    }else{
      res.send("Success")
    } 
    });
  });
  });
  });

Вот как выглядят мои подписки:

{ follow:
   [ 5edfe8f3bfc9d677005d55ca,
     5edfe92fbfc9d677005d55cc,
     5ee2326cc7351c5bb0b75f1a ],

Я возьму идентификатор друга из этого массива.

И мой модель пользователя ( Следуйте части ):

follow:[{
    type: ObjectId,
}]

Если pull не работает, можете ли вы предложить мне запросы или способы сделать запрос на отмену подписки.

1 Ответ

0 голосов
/ 12 июля 2020

User.find({ username: req.params.id } вернет документ, но похоже, что вы сохраняете ObjectId s в поле follow. Я, за исключением замены $pull: { follow: friend } на $pull: { follow: friend._id }, должен решить проблему.

...