2017-04-05 8 views
0

MongoDBモデルのプロパティである配列内の要素を削除することはできません。 statusLiked配列からオブジェクトを削除します。機能性は同じではありませんので、 は...MongoDBとMongoDBプロパティの配列の要素を削除するには?

GOALこのNodeJSモジュールであるmongooseJSではなく、実際のMongoDBのを覚えていてください。 | status.idの値が正しいことも確認しました。

モデル:削除

Const userSchema = new mongoose.Schema({ 
    myStatus: Array, 
    statusLiked: Array, 
)}; 

: 1.ステータス(作品)を削除します。 2. User.statusLiked(作業なし)からステータスを削除します。

exports.deleteStatus = (req, res, next) => { 
    var CurrentPost = req.body.statusid; // sends in the status.id 
    Status.remove({ _id: CurrentPost }, (err) => { 
    if (err) { return next(err); } 
    // vvvv this vvv 
    User.update({id: req.user.id}, { $pullAll: {_id: CurrentPost }, function(err) { console.log('error: '+err) } }); 

    req.flash('success', { msg: 'Status deleted.' }); 
    res.redirect('/'); 
    }); 

}; 

状況:特定のステータス(オブジェクト)がデータベースから削除されます。しかし、ステータスはまだUser.statusLiked配列に残ります。

実行したいこと:User.statusLiked配列から削除するステータスと、データベースから削除するステータス。次に、ページをリロードし、通知を表示します。

答えて

0

何とか働くようになった。作業コード:

exports.deleteStatus = (req, res, next) => { 
    var CurrUser = req.body.userid; 
    var CurrentPost = req.body.post; 
    Status.remove({ _id: CurrentPost }, (err) => { 
    if (err) { return next(err); } 
    console.log('meeee'+CurrentPost+'user: ' +CurrUser); 
    req.flash('success', { msg: 'Status deleted.' }); 
    res.redirect('/'); 
    }); 
User.update( 
     { _id: new ObjectId(CurrUser)}, 
     { $pull: { myStatus : { _id : new ObjectId(CurrentPost) } } }, 
     { safe: true }, 
     function (err, obj) { 
     console.log(err || obj); 
     }); 
}; 
関連する問題