これは以前に尋ねられたことは分かっていますが、答えのどれも私のために働いていません。 私のアプリケーションでは、MongoDbにユーザーコレクションがあります。これらのユーザーコレクションには、フォーム内で変更できる「segActuacions」という名前の配列フィールドがあります。この形式は、ルータにこのオブジェクトを送信します。NodeJs/express/mongooseのオブジェクトからアイテムを削除するにはどうすればよいですか?
{
"segActuacions.0.date": "27/09/2016",
"segActuacions.0.body": "first item",
"segActuacions.1.date": "27/09/2016",
"segActuacions.1.body": "second item"
}
ルータはコントローラに移動するには、このラインを持っている:
':id'
は
User-id
で、
':i'
はコントローラがこれを持っている
segActuacions
の指標である
router.delete('/seg_act_upd_EE/:id/actDel/:i',
sessionController.loginRequired,
userController.actuaDelete
);
コード:
exports.actuaDelete = function (req, res) {
var userId = req.params.id;
var userI = req.params.i;
var usr = req.body;
delete usr['segActuacions.userI.date'];
delete usr['segActuacions.userI.body'];
models.User.findByIdAndUpdate(userId, usr, function (error, user){
if (error) res.json(error);
res.redirect('/list_EE');
});
}
オブジェクトの'i'
フィールドを削除したいとします(たとえば、if i=0
、"segActuacions.0.date"
と"segActuacions.0.body"
を削除しますが、何も起こりません)。
はい、ついにそれは実際に働いた!!!私はドットと配列の表記の間に夢中になり、引用符について考えなかった。""あなたの説明のおかげで@chridam – cfibla