2017-03-06 2 views
0

を引っ張るますが、私は、スキーマのマングース

var postSchema = new Schema({ 
    comments: [{ 
     nickName: {type: String, required: true}, 
     comment: {type: String, required: true} 
    }] 
}); 

を持っている。そして、私はこれを行うには直接的な方法はありませんコメント

Post.findOneAndUpdate({'_id': req.body._id}, {$pull: {'comments': {'_id': req.body._idComment} }}, 
    function(err, data) { 
    if (err) { 
     res.send({status:400}); 
    } else { 
     // how get $pull object if I don't know index of element of array 
     // data returns all objects 
    } 
}); 

答えて

0

の1件のコメントを引き出したいです。しかし、それに対する回避策はほとんどありません。 データを更新する(私はそれを削除することを意味します)、それが成功した場合は、要素を削除する入力があなたの答えであることを知っています。

Post.update({'_id': req.body._id}, 
    {$pull: {'comments': {'_id': req.body._idComment} }},function(err, data) { 
     .... 
     .... 
}); 

また、あなたのデータが削除された場合も、あなたの削除データを確認しますどのチェックするfindクエリを実行することができます。

findOneAndUpdateの場合は、{new:True}オプションを使用して更新されたドキュメントを返し、入力内容を返されたdocと比較して削除されたデータを取得することができます。

関連する問題