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

MongoDB में तत्व क्रम की परवाह किए बिना सरणी मिलान करने वाले दस्तावेज़ क्वेरी करें

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

उदाहरण: नेस्टेड ऑब्जेक्ट्स की सरणी वाले दस्तावेज़

> db.demo370.insertOne({
    "Name" : "Chris",
    "details" : [
        { "Subject" : "MySQL", "CountryName" : "US" },
        { "Subject" : "MongoDB", "CountryName" : "UK" }
    ]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5e57e9892ae06a1609a00af0") }
> db.demo370.insertOne({
    "Name" : "David",
    "details" : [
        { "Subject" : "Java", "CountryName" : "AUS" },
        { "Subject" : "Spring", "CountryName" : "UK" }
    ]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5e57e9972ae06a1609a00af1") }

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

> db.demo370.find();

आउटपुट: अलग-अलग ऑब्जेक्ट्स के साथ दो दस्तावेज़।

क्वेरी: दोनों निर्दिष्ट ऑब्जेक्ट्स वाली सरणी वाले दस्तावेज़ ढूंढें (किसी भी क्रम में)

> db.demo370.find({
    details: { $all: [
        { "Subject": "MySQL", "CountryName" : "US" },
        { "Subject": "MongoDB", "CountryName" : "UK" }
    ]}
});

परिणाम

केवल पहला दस्तावेज़ (Chris) लौटाया जाता है क्योंकि इसकी सरणी में दोनों निर्दिष्ट ऑब्जेक्ट्स हैं।

मुख्य व्यवहार

  • $all सरणी फील्ड पर काम करता है।
  • निर्दिष्ट प्रत्येक तत्व के लिए, सरणी में कम से कम एक तत्व होना चाहिए जो समान हो (सभी फील्ड्स मेल खाते हैं)।
  • सरणी में तत्वों का क्रम मायने नहीं रखता।
  • यदि सरणी में डुप्लिकेट हैं, तो $all तब भी मेल खाता है जब प्रत्येक आवश्यक तत्व कम से कम एक बार मौजूद हो।

तुलना

ऑपरेटरव्यवहार
$allसरणी में सभी निर्दिष्ट तत्व होने चाहिए (किसी भी क्रम में)।
$inसरणी में निर्दिष्ट तत्वों में से कम से कम एक होना चाहिए।
$elemMatchएक एकल सरणी तत्व सभी निर्दिष्ट मानदंडों को पूरा करता है।

प्रदर्शन

$all इंडेक्स का उपयोग कर सकता है यदि क्वेरी किए गए फील्ड पर इंडेक्स मौजूद है। बड़े सरणी के लिए, इंडेक्स सुनिश्चित करें।

  1. - MongoDB में एम्बेडेड दस्तावेजों को क्वेरी करें

    MongoDB में एम्बेडेड दस्तावेजों को क्वेरी करने के लिए, aggregate() का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo705.insertOne( { _id:101, Information: [ { StudentName:Chris, StudentAge:21 }, { StudentName:David, StudentAge:23 },

  1. - MongoDB में एम्बेडेड दस्तावेजों के ऐरे को क्वेरी करें और नया जोड़ें

    इसके लिए, अपडेट के साथ $push का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo573.insertOne( { _id: 101, SearchInformation: [ { Site: Facebook.com, NumberOfHits: 100 }, { Site: Twitter.com, NumberOfHits: 300 } ] } ); { ac

  1. - MongoDB क्वेरी: ऐरे फील्ड वाले दस्तावेजों को मैच करें

    ऐरे फील्ड वाले दस्तावेजों को मैच करने के लिए, $elemMatch ऑपरेटर का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo592.insertOne({ id:101, details: [ { Name: Chris, Value: 200 }, { Name: David, Value: 800 } ] }); { acknowledged : true, insertedId : Ob