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

MongoDB में सबडॉक्यूमेंट को सॉर्ट, सेलेक्ट और क्वेरी कैसे करें

MongoDB एग्रीगेशन में सबडॉक्यूमेंट फ़ील्ड्स पर सॉर्टिंग और प्रोजेक्शन

जब डेटा सबडॉक्यूमेंट (नेस्टेड ऑब्जेक्ट) में संग्रहीत होता है, तो एग्रीगेशन पाइपलाइन का उपयोग करके आप सबडॉक्यूमेंट फ़ील्ड्स को निकाल सकते हैं, सॉर्ट कर सकते हैं, और प्रोजेक्ट कर सकते हैं।

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

> db.demo236.insertOne({"details":{"Name":"Chris","Age":21}});
{ "acknowledged" : true, "insertedId" : ObjectId("5e419015f4cebbeaebec514c") }
> db.demo236.insertOne({"details":{"Name":"David","Age":23}});
{ "acknowledged" : true, "insertedId" : ObjectId("5e41901cf4cebbeaebec514d") }
> db.demo236.insertOne({"details":{"Name":"Bob","Age":24}});
{ "acknowledged" : true, "insertedId" : ObjectId("5e419023f4cebbeaebec514e") }

सभी दस्तावेज़ देखना

> db.demo236.find();

आउटपुट:


एग्रीगेशन: सबडॉक्यूमेंट फ़ील्ड्स निकालें और नाम द्वारा डिसेंडिंग सॉर्ट करें

> db.demo236.aggregate([
    { $project: {
        Name: '$details.Name',
        Age: '$details.Age'
    }},
    { $sort: { Name: -1 } }
]);

आउटपुट:


नोट: $unwind यहां अनावश्यक है

मूल उदाहरण में { $unwind: "$details" } शामिल था, लेकिन चूंकि details एक ऑब्जेक्ट है (ऐरे नहीं), $unwind की आवश्यकता नहीं है। सीधे $project में डॉट नोटेशन का उपयोग करें।

सबडॉक्यूमेंट पर क्वेरी करना

> // सबडॉक्यूमेंट फ़ील्ड द्वारा फ़िल्टर
> db.demo236.find({ "details.Age": { $gt: 22 } });

> // सबडॉक्यूमेंट फ़ील्ड द्वारा सॉर्ट (find के साथ)
> db.demo236.find().sort({ "details.Name": 1 });

मुख्य बिंदु

  • सबडॉक्यूमेंट फ़ील्ड्स एक्सेस करने के लिए डॉट नोटेशन: "details.Name"
  • $project में भी डॉट नोटेशन: Name: "$details.Name"
  • $unwind केवल ऐरे के लिए आवश्यक है, ऑब्जेक्ट्स के लिए नहीं
  1. - MongoDB क्वेरी में विशिष्ट कॉलम चुनना

    MongoDB में प्रोजेक्शन का उपयोग करके विशिष्ट फील्ड्स चुनना MongoDB में क्वेरी परिणामों में केवल वांछित फील्ड्स शामिल करने के लिए प्रोजेक्शन ऑब्जेक्ट (find का दूसरा पैरामीटर) में फील्ड को 1 (शामिल करें) या 0 (बहिष्कृत करें) सेट करें। उदाहरण: संग्रह और दस्तावेज़ बनाना > db.demo415.insertOne({Clien

  1. - MongoDB क्वेरी को कैसे विभाजित करें और 5 मान छोड़ें?

    MongoDB में मान छोड़ने के लिए skip() के साथ limit() का उपयोग करें। 5 मानों के लिए limit(5) का उपयोग करें। नमूना डेटा बनाना (10 से 80 तक मान) db.demo633.insertOne({Value:80}); सभी दस्तावेज़ देखना db.demo633.find(); { Value : 10 }, { Value : 20 }, { Value : 30 }, { Value : 40 } { Value : 50 }, { V

  1. - MongoDB क्वेरी: डिस्टिंक्ट सेलेक्ट करें और काउंट करें

    आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo586.insertOne({ details: [ { Name:Chris, Marks:71 }, { Name:Chris, Marks:61 }, { Name:David, Marks:81 } ] }); { acknowledged : true, insertedId : ObjectId(5e9200fefd2d90c177b5bcc7) } > db.demo586.insertOne({