2016-03-23 13 views
-1

Ich benutze MongoDb und NodeJs und ich habe ein kleines Problem mit dem Löschen von Objekten aus dem Array von Objekten. Hier ist mein CodeWie lösche Objekt aus Array in 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); 
    }); 

}) 

Und wenn ich diesen Weg nennen die Konsole geben Sie mir „jam.save ist keine Funktion“ Fehler. Jemand kann mir erklären, warum es passiert? Thx für Antworten

+1

Ihr Titel scheint keine Verbindung zu der eigentlichen Frage zu haben, die Sie am Ende Ihres Beitrags stellen. Bitte korrigieren Sie den Titel passend zum Betreff Ihrer Frage. – jfriend00

Antwort

1

Sie können Update wie diese

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

verwenden Es wird die angepassten Objekt aus Quests Array herausziehen. Siehe mongo docs here

Verwandte Themen