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

MongoDB में नामों की सूची के आधार पर क्वेरी परिणामों में टैग काउंट कैसे प्राप्त करें?

MongoDB में $in ऑपरेटर का उपयोग करके नामों की सूची के आधार पर डॉक्यूमेंट्स फिल्टर करना

$in ऑपरेटर उन डॉक्यूमेंट्स को चुनता है जहां एक ऐरे फील्ड में निर्दिष्ट मानों में से कम से कम एक मान होता है। यह टैगिंग, वर्गीकरण, या किसी भी परिदृश्य के लिए उपयोगी है जहां आप पूर्वनिर्धारित मानों की सूची के आधार पर डॉक्यूमेंट्स को फिल्टर करना चाहते हैं।

नमूना डेटा बनाना

> db.tagCountDemo.insertOne({"ListOfNames":["John","Sam","Carol"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd64b387924bb85b3f48944") }
> db.tagCountDemo.insertOne({"ListOfNames":["Bob","David","John"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd64b4b7924bb85b3f48945") }
> db.tagCountDemo.insertOne({"ListOfNames":["Mike","Robert","Chris"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd64b5d7924bb85b3f48946") }
> db.tagCountDemo.insertOne({"ListOfNames":["James","Carol","Jace"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd64b717924bb85b3f48947") }

सभी डॉक्यूमेंट्स देखना

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

आउटपुट:

{ "_id" : ObjectId("5cd64b387924bb85b3f48944"), "ListOfNames" : [ "John", "Sam", "Carol" ] }
{ "_id" : ObjectId("5cd64b4b7924bb85b3f48945"), "ListOfNames" : [ "Bob", "David", "John" ] }
{ "_id" : ObjectId("5cd64b5d7924bb85b3f48946"), "ListOfNames" : [ "Mike", "Robert", "Chris" ] }
{ "_id" : ObjectId("5cd64b717924bb85b3f48947"), "ListOfNames" : [ "James", "Carol", "Jace" ] }

"John" या "Carol" वाले डॉक्यूमेंट्स के लिए क्वेरी करना

> db.tagCountDemo.find({"ListOfNames":{$in:['John','Carol']}});

आउटपुट:

{ "_id" : ObjectId("5cd64b387924bb85b3f48944"), "ListOfNames" : [ "John", "Sam", "Carol" ] }
{ "_id" : ObjectId("5cd64b4b7924bb85b3f48945"), "ListOfNames" : [ "Bob", "David", "John" ] }
{ "_id" : ObjectId("5cd64b717924bb85b3f48947"), "ListOfNames" : [ "James", "Carol", "Jace" ] }

व्याख्या

  • क्वेरी उन डॉक्यूमेंट्स को लौटाती है जहां ListOfNames में "John" या "Carol" (या दोनों) होता है।
  • पहला डॉक्यूमेंट दोनों से मेल खाता है, दूसरा "John" से मेल खाता है, चौथा "Carol" से मेल खाता है।
  • तीसरा डॉक्यूमेंट बाहर रखा गया है क्योंकि इसमें कोई भी नाम नहीं है।

मिलान करने वाले डॉक्यूमेंट्स गिनना

मिलान करने वाले डॉक्यूमेंट्स की संख्या प्राप्त करने के लिए:

> db.tagCountDemo.count({"ListOfNames":{$in:['John','Carol']}});

मुख्य बिंदु

  • $in ऐरे फील्ड्स पर कुशलता से काम करता है - यह जांचता है कि क्या ऐरे में कोई मान है।
  • केस-सेंसिटिव मिलान डिफ़ॉल्ट है; केस-इनसेंसिटिव खोज के लिए रेगेक्स का उपयोग करें।
  • बड़े मान सेट्स के लिए, $in सरणी को उचित आकार (आमतौर पर < 100K तत्व) तक सीमित रखें।
  1. - MongoDB ग्रुप क्वेरी: दस्तावेज़ों में दोहराए गए अंकों की संख्या कैसे प्राप्त करें?

    ग्रुप क्वेरी के लिए, MongoDB $group का उपयोग करें और $sum के साथ संख्या प्राप्त करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo676.insertOne({Marks:87}); { acknowledged : true, insertedId : ObjectId(5ea41eed04263e90dac943f2) } > db.demo676.insertOne({Marks:75}); { acknowledged : true,

  1. - MongoDB aggregate से डुप्लिकेट नामों के संबंधित फील्ड मानों की गिनती प्राप्त करें

    उदाहरण देखते हैं और डॉक्यूमेंट्स के साथ एक कलेक्शन बनाते हैं: > db.demo558.insertOne( ... { _id : 100, CountryCode:101, details: [ ... { Name:Chris, Subject:MySQL }, ... { Name:Chris, Subject:MongoDB }, ... { Name:Chris, Subject:Java }, ... { Name:Bob, Subject:Python }, ... { Name:Bob, Subject:J

  1. - MongoDB में डुप्लिकेट IDs के आधार पर रेटिंग औसत प्राप्त करें

    MongoDB में औसत के लिए $avg का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं। यहां हमारे पास प्रत्येक के लिए रेटिंग के साथ डुप्लिकेट IDs हैं: > db.demo606.insertOne({id:1,rating:5}); { acknowledged : true, insertedId : ObjectId(5e972dfbf57d0dc0b182d623) } > db.demo606.insertOne({id:1