Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MongoDB

MongoDB में प्रोजेक्शन के माध्यम से नेस्टेड दस्तावेज़ से एक फ़ील्ड को छोड़कर सभी हटाएं

MongoDB प्रोजेक्शन में नेस्टेड फ़ील्ड्स को शामिल/बहिष्कृत करना

MongoDB में find() के दूसरे पैरामीटर (प्रोजेक्शन) का उपयोग करके आप नेस्टेड दस्तावेज़ों के विशिष्ट फ़ील्ड्स को शामिल या बहिष्कृत कर सकते हैं।

सैंपल डेटा बनाना

> db.demo237.insertOne({
    _id: 101,
    Product: {
        description1: { id: 1001 },
        description2: { Name: "Product-1" },
        description3: { Price: 550 }
    }
});
{ "acknowledged" : true, "insertedId" : 101 }

दस्तावेज़ देखना (सभी फ़ील्ड्स)

> db.demo237.find().pretty();

आउटपुट:


प्रोजेक्शन: description1 और description3 को बहिष्कृत करें

> db.demo237.find({}, { "Product.description1": 0, "Product.description3": 0 });

आउटपुट (केवल description2 बचा):


महत्वपूर्ण नियम

  • 0 = बहिष्कृत करें, 1 = शामिल करें
  • _id को छोड़कर, आप एक ही क्वेरी में शामिल और बहिष्कृत नहीं कर सकते
  • नेस्टेड फ़ील्ड्स के लिए डॉट नोटेशन का उपयोग करें: "Parent.Child"
  • यदि पैरेंट ऑब्जेक्ट के सभी चाइल्ड्स बहिष्कृत हैं, तो पैरेंट ऑब्जेक्ट खाली ऑब्जेक्ट {} के रूप में दिखेगा

वैकल्पिक: केवल वांछित फ़ील्ड्स शामिल करें

> db.demo237.find({}, { "Product.description2": 1, _id: 0 });

आउटपुट: { "Product" : { "description2" : { "Name" : "Product-1" } } }

एग्रीगेशन में $project का उपयोग

अधिक जटिल ट्रांसफॉर्मेशन के लिए:

> db.demo237.aggregate([
    { $project: {
        _id: 0,
        ProductName: "$Product.description2.Name"
    }}
]);
  1. - MongoDB कलेक्शन से $eq से मेल खाने वाले मान वाले दस्तावेज़ कैसे हटाएं?

    MongoDB कलेक्शन से $eq से मेल खाने वाले मान वाले दस्तावेज़ को remove() का उपयोग करके हटाएं। $eq ऑपरेटर उन दस्तावेज़ों से मेल खाता है जहां फील्ड का मान निर्दिष्ट मान के बराबर होता है। नमूना डेटा बनाना db.demo626.insertOne({id:4,Name:Mike}); सभी दस्तावेज़ देखना db.demo626.find(); { id : 1, Name :

  1. - MongoDB में Subdocument को Document से Remove करना

    Document से subdocument remove करने के लिए $pull operator का उपयोग update() के साथ करें। आइए पहले documents के साथ एक collection बनाते हैं: > db.demo538.insertOne( ... { ... id:101, ... details : ... { ... anotherDetails: ... [ ... { ... Name:Chris, ... Age:21

  1. - MongoDB में दस्तावेज फील्ड मानों से मान घटाएं (TotalPrice - Discount)

    दस्तावेज फील्ड मानों से मान घटाने के लिए, MongoDB aggregate() में $subtract का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo599.insertOne({TotalPrice:250,DiscountPrice:35}); { acknowledged : true, insertedId : ObjectId(5e948192f5f1e70e134e2696) } > db.demo599.insertOne({To