1
にネストされたオブジェクトの単一のアレイ値Iがマングースを使用して配列内の値を更新しようとしていたと私が作成されたテーブルを更新マングース
var newUser = User({
name : 'XXX',
userName : 'XXX',
password : 'XXX',
admin : true,
location : 'KKK',
studentDeatails : [
{
name : 'AAA',
study : {
dept : 'CSE',
course : 'B.E',
year : 4
}
},
{
name : 'BBB',
study : {
dept : 'EEE',
course : 'B.E',
year : 3
}
}
],
createdAt: Date(),
updatedAt: Date()
});
を下回る結果与えられる:
[ { _id: 57c42dd22842e7561e8b9612,
name: 'XXX',
userName: 'XXX',
password: 'XXX',
admin: true,
location: 'KKK',
createdAt: 2016-08-29T12:42:58.000Z,
updatedAt: 2016-08-29T12:42:58.000Z,
studentDeatails: [ { name: 'AAA',
_id: 57c42dd22842e7561e8b9614,
study: { dept: 'CSE', course: 'B.E', year: 4 } },
{ name: 'BBB',
_id: 57c42dd22842e7561e8b9613,
study: { dept: 'EEE', course: 'B.E', year: 3 } } ] } ]
を私はDEPTの値を更新しようとしていた
:'EEE' -> dept: 'MECH'
私の予想の答えは次のようになります。
[ { _id: 57c42dd22842e7561e8b9612,
name: 'XXX',
userName: 'XXX',
password: 'XXX',
admin: true,
location: 'KKK',
createdAt: 2016-08-29T12:42:58.000Z,
updatedAt: 2016-08-29T12:42:58.000Z,
studentDeatails: [ { name: 'AAA',
_id: 57c42dd22842e7561e8b9614,
study: { dept: 'CSE', course: 'B.E', year: 4 } },
{ name: 'BBB',
_id: 57c42dd22842e7561e8b9613,
study: { dept: 'MECH', course: 'B.E', year: 3 } } ] } ]
私が試したコードは次のとおりです。
User.findOneAndUpdate(
{ name: 'XXX', 'studentDeatails.study.year': 3 },
{ "$set": { 'studentDeatails.0.study.$.dept' : 'MECH' } },
function(err){
if(err){
console.log(err);
} else {
console.log("Successfully Updated");
}
}
);
それは大きな助けになるだろう、私はマングースを使用して間違ってやっていること修正してください!
ありがとうございました。 @chridam – sunilsmith