2017-09-22 8 views
0

こんにちは私は項目を削除し、その上に配列に格納されたID値を取り、ここにある説明のために、彼らにMongoDBは

を削除できるようにしたいまだMongoDBのための初心者やNodejs よ、私のボードスキーマ

{ 
    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' }], 
}; 

ボードスキーマは、私はボードを削除するとき、それのカード配列に格納されているカードを削除できるようにしたい、カードの配列を持っている、私はマングースを使用していて、私はfindAndModifyを使用しようと、それは誤り

を返します。

また試しましたこの

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 }); 
    } 

に行くが、それは

答えて

0

私はマングースで仕事を `tの動作しませんが、ネイティブドライバであなたは

を行うみてくださいクエリ

のためにあなたのIDをワープする必要があります

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 }); 
 
    }