किसी छात्र को पाठ्यक्रम सत्र से हटाने के लिए आप निम्न DELETE मार्ग का उपयोग कर सकते हैं।
router.delete(
"/course/:courseId/session/:sessionId/student/:studentId",
async (req, res) => {
try {
let result = await Course.updateOne(
{ _id: req.params.courseId, "sessions._id": req.params.sessionId },
{
$pull: { "sessions.$.students": { userName: req.params.studentId } }
}
);
res.send(result);
} catch (err) {
console.log(err);
res.status(500).send("Something went wrong");
}
}
);
मान लें कि आपके पास इस तरह का एक कोर्स है:
{
"_id" : ObjectId("5de907acdfcef9493cd215a8"),
"name" : "Course 1",
"sessions" : [
{
"date" : ISODate("2019-12-05T16:32:41.998+03:00"),
"_id" : ObjectId("5de907acdfcef9493cd215a9"),
"students" : [
{
"_id" : ObjectId("5de907acdfcef9493cd215ac"),
"userName" : ObjectId("5de8e4c8f74cf254d04f90d8"),
"status" : 1
},
{
"_id" : ObjectId("5de907acdfcef9493cd215ab"),
"userName" : ObjectId("5de8e4d5f74cf254d04f90d9"),
"status" : 1
},
{
"_id" : ObjectId("5de907acdfcef9493cd215aa"),
"userName" : ObjectId("5de8e4ddf74cf254d04f90da"),
"status" : 1
}
]
}
],
"__v" : 0
}
यदि हम उपयोगकर्ता नाम वाले छात्र को 5de8e4ddf74cf254d04f90da
के साथ हटाना चाहते हैं , हम इस तरह के url का उपयोग करके अपने मार्ग पर DELETE अनुरोध भेज सकते हैं:
http://localhost/courses/5de907acdfcef9493cd215a8/session/5de907acdfcef9493cd215a9/student/5de8e4ddf74cf254d04f90da
5de907acdfcef9493cd215a8--> courseId
5de907acdfcef9493cd215a9--> sessionId
प्रतिक्रिया इस प्रकार होगी:
{
"n": 1,
"nModified": 1,
"ok": 1
}
जब हम अपने पाठ्यक्रम को देखते हैं, तो हम देखते हैं कि छात्र को हटा दिया गया है:
{
"_id" : ObjectId("5de907acdfcef9493cd215a8"),
"name" : "Course 1",
"sessions" : [
{
"date" : ISODate("2019-12-05T16:32:41.998+03:00"),
"_id" : ObjectId("5de907acdfcef9493cd215a9"),
"students" : [
{
"_id" : ObjectId("5de907acdfcef9493cd215ac"),
"userName" : ObjectId("5de8e4c8f74cf254d04f90d8"),
"status" : 1
},
{
"_id" : ObjectId("5de907acdfcef9493cd215ab"),
"userName" : ObjectId("5de8e4d5f74cf254d04f90d9"),
"status" : 1
}
]
}
],
"__v" : 0
}
जैसा कि हम छात्र को उपयोगकर्ता नाम के साथ देखते हैं 5de8e4ddf74cf254d04f90da
पाठ्यक्रम सत्र में अब मौजूद नहीं है, जिसका अर्थ है कि इसे हटा दिया गया है।