2017-02-24 7 views
0

Ich habe ein Dokument ‚Collection‘:Mungo finden und entfernen Objekt aus dem Feld eines Dokuments

{ 
name: {type: String, required: true, default: "Untitled Collection"}, 
movies: [ 
     { the_id: {type: String}, 
      movie_id: {type: String}, 
      tmdb_id: {type: String}, 
      original_title: {type: String}, 
       release_date: {type:Date} 
     }], 
author: {type: String},} 

Ich brauche einen bestimmten Artikel aus Filmen [] zu finden und zu entfernen. Dies ist, was ich gerade habe, und es funktioniert nicht.

req.body ist ein Objekt durch die Daten einer POST-Anforderung übergeben und hat alle Informationen notwendig, um eine in den Filmen entsprechen [] Array

Collection.findOne({_id : req.params.id}, (err, collection) =>{ 
     if(err){res.status(400).json(err);} 

     if(!collection) 
     { 
      res.status(404).json({message: 'No collection found'}); 
     }else{ 
      collection.movies.pop(req.body); 
      collection.save(); 

      res.json(collection); 
     } 
    }); 

Alles, was es zur Zeit ausgeschaltet tut Pop das vordere Objekt im Array, aber ich brauche es das Objekt in dem Array zu entfernen, die gleich ist req.body

Antwort

1

Schauen Sie in die $ Pull Operator

collection.movies.pull(req.body); 
0

Sie ein Element in einem Array entfernen kann mit $pull

Collection.update({ 
    _id: req.params.id 
}, { 
    $pull: { 
     'movies': req.body 
    } 
}, (err, collection) => { 
    if (err) { 
     res.status(400).json(err); 
    } 
    console.log(res); 
    res.status(200); 
}); 
Verwandte Themen