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

MongoDB में $lte, $in और $not के साथ विशिष्ट मान प्राप्त करने के लिए क्वेरी

MongoDB में जटिल क्वेरी ऑपरेटर्स का संयोजन

$eq, $not, $gt ऑपरेटर्स का संयोजन करके विशिष्ट शर्तों वाले डॉक्यूमेंट्स खोजें।

कलेक्शन बनाना

> db.demo130.insertOne(
    {
        "PlayerDetails": [{Score:56},{Score:78},{Score:89},{Score:97}]
    }
);
{ "acknowledged": true, "insertedId": ObjectId("5e3065bf68e7f832db1a7f6d") }
> db.demo130.insertOne(
    {
        "PlayerDetails": [{Score:45},{Score:56}]
    }
);
{ "acknowledged": true, "insertedId": ObjectId("5e3065c068e7f832db1a7f6e") }

सभी डॉक्यूमेंट्स

> db.demo130.find();
{ "_id": ObjectId("5e3065bf68e7f832db1a7f6d"), "PlayerDetails": [ { "Score": 56 }, { "Score": 78 }, { "Score": 89 }, { "Score": 97 } ] }
{ "_id": ObjectId("5e3065c068e7f832db1a7f6e"), "PlayerDetails": [ { "Score": 45 }, { "Score": 56 } ] }

क्वेरी: Score 56 हो और कोई भी Score 56 से अधिक न हो

> db.demo130.find({
    "PlayerDetails.Score": {
        "$eq": 56,
        "$not": { "$gt": 56 }
    }
})

परिणाम

{ "_id": ObjectId("5e3065c068e7f832db1a7f6e"), "PlayerDetails": [ { "Score": 45 }, { "Score": 56 } ] }

व्याख्या

  • $eq: 56: कम से कम एक Score 56 होना चाहिए
  • $not: { $gt: 56 }: कोई भी Score 56 से अधिक नहीं होना चाहिए
  • पहला डॉक्यूमेंट: 56 है लेकिन 78, 89, 97 भी हैं (56 से अधिक) → बाहर
  • दूसरा डॉक्यूमेंट: 56 है और अधिकतम 56 है (45, 56) → शामिल

महत्वपूर्ण नोट

ऐरे फील्ड्स पर क्वेरी करते समय, MongoDB ऐरे के किसी भी तत्व से शर्तों का मिलान करता है। दोनों शर्तें ऐरे के विभिन्न तत्वों से पूरी हो सकती हैं। सटीक मिलान के लिए $elemMatch का उपयोग करें।

  1. - MongoDB: ऐरे वैल्यूज के आधार पर दस्तावेजों को मैच करें जो विशिष्ट मान से अधिक हों

    आप $elemMatch का उपयोग कर सकते हैं। $elemMatch ऑपरेटर उन दस्तावेजों से मेल खाता है जिनमें एक ऐरे फील्ड होता है जिसमें कम से कम एक एलिमेंट होता है जो सभी निर्दिष्ट क्वेरी मानदंडों से मेल खाता है। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo701.insertOne({ListOfValues:[100,200,300]}); { a

  1. - MongoDB में विशिष्ट संख्या से अधिक फील्ड मान वाले डॉक्यूमेंट्स से मिलान करके उन्हें प्राप्त करें

    मिलान के लिए MongoDB में $match का उपयोग करें। विशिष्ट संख्या से अधिक मानों के लिए $gt का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo730.insertOne({Name : Chris, Marks : 33 }); { acknowledged : true, insertedId : ObjectId(5eac54cd56e85a39df5f6339) } > db.demo730.insertOne({ Name : David,

  1. - MongoDB में सरणी क्वेरी करके विशिष्ट मान प्राप्त करें

    सरणी से विशिष्ट मान प्राप्त करने के लिए aggregate() के साथ $project का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo761.insertOne( { details: [ { student: { FullName: Chris Brown } } ] } ); { acknowledged : true, insertedId : ObjectId(5eb034d15637cd592b2a4af1) } > db.demo761.insertOne( { de