0
MongoDBを使用してオンラインでのエダクションアプリケーションのグレードを保存します。以下は、mongoDBデータベースに格納しているclassRoomドキュメントです。 StudentGradeObjs
は、GradeObject
の内部の配列に格納されます。 GradeObjs
は、教室内でGradeObjects
の配列に格納されます。MongoDB配列内のオブジェクトの配列内のオブジェクト内のプロパティを更新します。
GradeObjs
を "hw1"、 "assignment2"などと考えてください。 studentGradeObjs
は、学生が課題をどのようにして行ったかを示しています。
{
"_id" : ObjectId("5a01d9e3a91726026cb2e52b"),
"name" : "Bio 212",
"teacherUsername" : "Mike",
"studentArray" : [
"5a00cfd4ae1c8a0114d61095",
"59ff75021365601935b674d0",
"59ff6282fe19e01fdcc2f505"
],
"gradeObjs" : [
{
"gradeName" : "hw1",
"gradeValueMax" : 20,
"dueDate" : "12/12/12",
"studentGrades" : [
{
"username" : "james",
"gradeValue" : null,
"submissionDate" : null,
"isSubmitted" : false
},
{
"username" : "DickButt",
"gradeValue" : null,
"submissionDate" : null,
"isSubmitted" : false
},
{
"username" : "john",
"gradeValue" : null,
"submissionDate" : null,
"isSubmitted" : false
}
]
},
{
"gradeName" : "hw2",
"gradeValueMax" : 30,
"dueDate" : "4/4/15",
"studentGrades" : [
{
"username" : "james",
"gradeValue" : null,
"submissionDate" : null,
"isSubmitted" : false
},
{
"username" : "john",
"gradeValue" : null,
"submissionDate" : null,
"isSubmitted" : false
},
{
"username" : "DickButt",
"gradeValue" : null,
"submissionDate" : null,
"isSubmitted" : false
}
]
}
],
"studentGrades" : {
"gradeValue" : 69,
"1" : {
"gradeValue" : 69
}
}
}
どのように私はstudentsGrades
、アレイ内の個々のgradeValue
プロパティを更新することができますか?私のクエリは次のようになります
classCollection.updateOne({$and: [{_id: ObjectId(classID)}, {"gradeObjs.gradeName": gradeName}]}, {$set: {"studentGrades.$.gradeValue": value}}, function(err, thing){