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

MongoDB: कैसे जांचें कि फील्ड के सभी एलिमेंट्स एक सुपरसेट में समाहित हैं?

MongoDB में फील्ड के सभी एलिमेंट्स की जांच के लिए find() में $elemMatch का उपयोग करें। $elemMatch ऑपरेटर उन दस्तावेज़ों से मेल खाता है जिनमें एक ऐरे फील्ड होता है जिसमें कम से कम एक एलिमेंट सभी निर्दिष्ट क्वेरी मानदंडों से मेल खाता है।

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

> db.demo624.insertOne({"ListOfName":["John","Chris","David","Bob"]});
> db.demo624.insertOne({"ListOfName":["John","Chris"]});
> db.demo624.insertOne({"ListOfName":["John","Chris","Carol"]});
> db.demo624.insertOne({"ListOfName":["John","Chris","Bob"]});
> db.demo624.insertOne({"ListOfName":["John","Chris","Mike","Robert"]});

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

> db.demo624.find();
{ "ListOfName" : [ "John", "Chris", "David", "Bob" ] }
{ "ListOfName" : [ "John", "Chris" ] }
{ "ListOfName" : [ "John", "Chris", "Carol" ] }
{ "ListOfName" : [ "John", "Chris", "Bob" ] }
{ "ListOfName" : [ "John", "Chris", "Mike", "Robert" ] }

सुपरसेट में समाहित एलिमेंट्स की जांच क्वेरी

जांचें कि ListOfName के सभी एलिमेंट्स ["John", "Chris", "David", "Bob"] सुपरसेट में हैं:

> db.demo624.find({"ListOfName":{$not:{$elemMatch:{$nin:["John", "Chris", "David", "Bob"]}}}});

परिणाम (केवल वे दस्तावेज़ जिनके सभी एलिमेंट्स सुपरसेट में हैं):

{ "ListOfName" : [ "John", "Chris", "David", "Bob" ] }
{ "ListOfName" : [ "John", "Chris" ] }
{ "ListOfName" : [ "John", "Chris", "Bob" ] }

व्याख्या: $nin उन एलिमेंट्स को ढूंढता है जो सुपरसेट में नहीं हैं, $elemMatch ऐरे में ऐसे किसी एलिमेंट से मेल खाता है, और $not परिणाम को उलट देता है - इसलिए केवल वही दस्तावेज़ लौटाए जाते हैं जिनके सभी एलिमेंट्स सुपरसेट में मौजूद हैं।

  1. - MongoDB में फ़ील्ड नाम कैसे बदलें?

    फ़ील्ड नाम बदलने के लिए, $project का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo517.insertOne({Name:Chris Brown}); { acknowledged : true, insertedId : ObjectId(5e88a2a2987b6e0e9d18f595) } > db.demo517.insertOne({Name:David Miller}); { acknowledged : true, insertedId : ObjectI

  1. - MongoDB कलेक्शन के सभी दस्तावेजों में नया फील्ड जोड़ें

    नया फील्ड जोड़ने के लिए, MongoDB में $addFields का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo712.insertOne({Name:John}); { acknowledged : true, insertedId : ObjectId(5ea85f675d33e20ed1097b82) } > db.demo712.insertOne({Name:Chris}); { acknowledged : true, insertedId : Ob

  1. - MongoDB 4 में दस्तावेजों को सॉर्ट करें और केवल एक फील्ड प्रदर्शित करें

    MongoDB 4 में दस्तावेजों को सॉर्ट करने के लिए sort() का उपयोग करें। केवल एक फील्ड दिखाने के लिए, जो सॉर्ट की गई है, उसे 1 पर सेट करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo611.insertOne({Name:Chris}); { acknowledged : true, insertedId : ObjectId(5e987110f6b89257f5584d83) } > d