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

MongoDB में ऐरे से फील्ड्स की तुलना करके डॉक्यूमेंट क्वेरी कैसे करें?

MongoDB में ऐरे फील्ड्स की तुलना के साथ क्वेरी

ऐरे से फील्ड्स की तुलना करने के लिए $gt और $lt का उपयोग करें।

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

> db.demo147.insertOne({"Details":[{"Score":45},{"Score":46}]});
{ "acknowledged": true, "insertedId": ObjectId("5e32fa21fdf09dd6d08539be") }
> db.demo147.insertOne({"Details":[{"Score":65},{"Score":86}]});
{ "acknowledged": true, "insertedId": ObjectId("5e32fa40fdf09dd6d08539bf") }

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

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

क्वेरी: Score 45 से अधिक और 50 से कम हो

> db.demo147.find({ 'Details.Score': { $gt: 45, $lt: 50 }});

परिणाम


व्याख्या

  • 'Details.Score': { $gt: 45, $lt: 50 }: Details ऐरे में कम से कम एक तत्व होना चाहिए जिसका Score 45 से अधिक और 50 से कम हो
  • पहला डॉक्यूमेंट: Score 46 शर्त पूरी करता है (45 < 46 < 50) → शामिल
  • दूसरा डॉक्यूमेंट: सभी Score 50 से अधिक हैं → बाहर
  • नोट: 45 बराबर है, $gt सख्ती से अधिक है, इसलिए 45 मेल नहीं खाता

महत्वपूर्ण व्यवहार

ऐरे फील्ड पर रेंज क्वेरी ($gt, $lt संयोजन) में, MongoDB ऐरे के किसी भी तत्व से शर्तों का मिलान करता है। एक ही तत्व दोनों शर्तों को पूरा करे, यह आवश्यक नहीं है (हालांकि इस मामले में 46 दोनों पूरा करता है)।

सटीक मिलान के लिए $elemMatch


            
  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 में Document से Array Value Delete करना

    Array values delete करने के लिए MongoDB में $pull का उपयोग करें। $pull operator existing array से उन सभी instances को remove करता है जो specified condition से match करते हैं। Collection बनाना > db.demo535.insertOne( ... { ... studentId : 101, ... studentName : Chris, ... ListOfMailIds : [

  1. - MongoDB में Document के Fields Access करना

    Document में fields access करने के लिए simply find() का उपयोग करें। Collection बनाना > db.demo565.insertOne( ... { ... id:101, ... Name:David, ... CountryName:US ... } ... ); { acknowledged : true, insertedId : ObjectId(5e90896739cfeaaf0b97b577) } > db.demo565.insertOne( ... { ... id: