2016-03-23 16 views
-1

私はMongoDbとNodeJsを使用しています。オブジェクトの配列からオブジェクトを削除すると少し問題があります。ここに私のコードmongodbの配列からオブジェクトを削除する方法は?

router.route('/deleteGuestFromJam/:id').delete(function(req, res){ 

Jam.find({_id: req.params.id}, function(err, jam){ 

    jam.guests = _.without(jam.guests, _.findWhere(jam.guests, {id: req.user.id})); 

    jam.save(function(err, jam) { 
     if (err){ 
      return res.status(500).send(err) 
     } 
     console.log(jam.guests) 
     return res.status(200).send(jam); 
    }); 

}) 

であり、私はこのルートを呼び出すときに、コンソールは、私はエラー「jam.saveは関数ではありません」を与えます。誰かが私になぜそれが起こっているのか説明することができますか?答え

+1

あなたのタイトルはあなたの記事の最後にあなたが尋ねている実際の質問には関係していないようです。あなたの質問の件名に合わせてタイトルを修正してください。 – jfriend00

答えて

1

のためのTHXは、あなたはそれがクエスト配列からマッチしたオブジェクトを引き出します。この

Jam.update({_id: req.params.id}, 
    { $pull: { 
      guests: { 
        $elemMatch: { id: req.user.id } 
      } 
     } 
    }, function(){....}); 

のような更新を使用することができます。 mongo docsを参照してくださいhere

関連する問題