MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

ऑब्जेक्ट आईडी के आधार पर नेस्टेड ऑब्जेक्ट को कैसे हटाएं?

किसी छात्र को पाठ्यक्रम सत्र से हटाने के लिए आप निम्न 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 पाठ्यक्रम सत्र में अब मौजूद नहीं है, जिसका अर्थ है कि इसे हटा दिया गया है।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. एक मोंगोडब क्वेरी से परिणाम को जावास्क्रिप्ट चर में कैसे सहेजना है?

  2. MongoDB संबंध:एम्बेड या संदर्भ?

  3. Find और FindAsync के बीच अंतर

  4. एक अलग समय क्षेत्र पर साल-महीने-दिन के आधार पर कैसे एकत्रित करें

  5. एसक्यूएल के मोंगोडब समकक्ष 'लॉन्गफील्ड' को 'ए' के ​​रूप में चुनें