2017-09-22 1 views
0

bonjour je suis encore novice à MongoDB et NodeJS Je veux être en mesure de supprimer le point et prendre des valeurs id stockées dans le tableau sur, et les supprimerMongoDB en utilisant findAndModify pour supprimer des éléments multiples

pour l'explication est ici mon schéma de la carte

{ 
    name: { 
    type: String, 
    required: 'Please check your name', 
    trim: true, 
    }, 
    userId: { 
    type: Number, 
    }, 
    private: { 
    type: Boolean, 
    default: true, 
    }, 
    cards: [{ type: Schema.Types.ObjectId, ref: 'Card' }], 
}; 
schéma de la carte

a tableau cartes, je veux pouvoir lors de la suppression carte, supprimer des cartes stockées sur son tableau de cartes, j'utilise mangouste, j'essayé d'utiliser findAndModify et il renvoie l'erreur

aussi j'ai essayé pour aller avec cette

const id = req.params.id; 
    const boardCards = Board.findById(id).cards; 
    try { 
    Board.deleteMany(
     { _id: id }, 
     (err, board) => { 
      Card.deleteMany(
      { _id: { $in: boardCards } }, 
      (err2, card) => { res.json(card); }, 
     ); 
     }, 
    ); 
    } catch (e) { 
    res.status(400).send({ error: 400, message: e }); 
    } 

mais il ne fonctionne pas

Répondre

0

Je n `travailler avec mangouste mais dans le pilote natif vous devez déformer votre identifiant pour la requête

essayez-

const id = mongoose.Types.ObjectId(req.params.id); //this has changed 
 
    const boardCards = Board.findById(id).cards; 
 
    try { 
 
    Board.deleteMany(
 
     { _id: id }, 
 
     (err, board) => { 
 
      Card.deleteMany(
 
      { _id: { $in: boardCards } }, 
 
      (err2, card) => { res.json(card); }, 
 
     ); 
 
     }, 
 
    ); 
 
    } catch (e) { 
 
    res.status(400).send({ error: 400, message: e }); 
 
    }