データベース内のすべての人物を更新するために、ノードサーバーに複数のエントリを送信しようとしています。PATCHを使用してノード/ mongooseで複数のエントリを変更しますか?
私はそれを行う方法は、一意のIDを介して各人をループし、これに基づいて更新情報を保存することだと思った。
しかし、Employee.findById関数内では、私は[i]
の値にアクセスすることができないので、関連する従業員を取得できません。 2人の従業員var i
を変更しようとしているときに、このコード行を実行すると出力されます。
router.patch('/edit', function(req, res, next) {
for (var i = 0; i < req.body.length; i++) {
console.log("outside " + i)
Employee.findById(req.body[i].employeeId, function(err, employee) {
console.log("inside " + i)
/*
employee = new Employee({
name: req.body[i].name,
})
employee.save();
*/
})
}
})
console.log("inside " + i)
が外にログとして同じ番号を出力していない私はなぜわかりませんか?
また、私が取っているアプローチがこれを行う正しい方法であるかどうかはわかりません。
アドバイスありがとうございます!
ありがとう!私の場合、新しい従業員の作成は既存のものを変更しなければならないので注意してください。コードを動作させるために、単にそのコードを 'employee.name = obj.name'に置き換えなければなりませんでした。 (もちろん、これは私の元の質問の一部ではありませんでしたが、ちょうどそれが他の人を助けるかもしれない場合に備えて追加すると思っていました) – alexc