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

MongoDB में मल्टीपल कंबाइंड फील्ड्स पर फिल्टर के साथ डॉक्यूमेंट्स कैसे खोजें?

MongoDB में $or ऑपरेटर का उपयोग करके मल्टीपल फील्ड्स पर फिल्टर करना

$or` ऑपरेटर एक लॉजिकल OR क्वेरी करता है जो उन डॉक्यूमेंट्स को चुनता है जो कम से कम एक निर्दिष्ट शर्त से मेल खाते हैं। यह तब उपयोगी होता है जब आप अलग-अलग फील्ड्स पर आधारित डॉक्यूमेंट्स ढूंढना चाहते हैं जहां कोई भी शर्त पूरी हो सकती है।

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

> db.findDocumentWithFilterDemo.insertOne({"ClientName":"Robert","IsMarried":false});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd4fd1e2cba06f46efe9ef1") }
> db.findDocumentWithFilterDemo.insertOne({"ClientName":"Chris","IsMarried":true});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd4fd322cba06f46efe9ef2") }
> db.findDocumentWithFilterDemo.insertOne({"ClientName":"David","IsMarried":true});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd4fd3b2cba06f46efe9ef3") }
> db.findDocumentWithFilterDemo.insertOne({"ClientName":"Carol","IsMarried":true});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd4fd452cba06f46efe9ef4") }

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

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

आउटपुट:

{ "_id" : ObjectId("5cd4fd1e2cba06f46efe9ef1"), "ClientName" : "Robert", "IsMarried" : false }
{ "_id" : ObjectId("5cd4fd322cba06f46efe9ef2"), "ClientName" : "Chris", "IsMarried" : true }
{ "_id" : ObjectId("5cd4fd3b2cba06f46efe9ef3"), "ClientName" : "David", "IsMarried" : true }
{ "_id" : ObjectId("5cd4fd452cba06f46efe9ef4"), "ClientName" : "Carol", "IsMarried" : true }

$or के साथ क्वेरी करना

उन डॉक्यूमेंट्स को खोजें जहां ClientName "Robert" नहीं है या IsMarried false नहीं है:

> db.findDocumentWithFilterDemo.find({
  $or: [
    { "ClientName": { $ne: "Robert" } },
    { "IsMarried": { $ne: false } }
  ]
});

आउटपुट:

{ "_id" : ObjectId("5cd4fd322cba06f46efe9ef2"), "ClientName" : "Chris", "IsMarried" : true }
{ "_id" : ObjectId("5cd4fd3b2cba06f46efe9ef3"), "ClientName" : "David", "IsMarried" : true }
{ "_id" : ObjectId("5cd4fd452cba06f46efe9ef4"), "ClientName" : "Carol", "IsMarried" : true }

व्याख्या

  • पहली शर्त { $ne: "Robert" } Chris, David, Carol से मेल खाती है।
  • दूसरी शर्त { $ne: false } Chris, David, Carol (सभी विवाहित) से मेल खाती है।
  • $or दोनों सेट्स का यूनियन लौटाता है - प्रभावी रूप से Robert को छोड़कर सभी।

मुख्य बिंदु

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

    ऐरे के आधार पर दस्तावेज़ फ़िल्टर करने के लिए $elemMatch का उपयोग करें। $elemMatch ऑपरेटर उन दस्तावेज़ों से मेल खाता है जिनमें एक ऐरे फ़ील्ड होता है। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo453.insertOne( ... { _id: 101, details: [ { Name: "David", Marks: 60 }, { Name: "M

  1. - MongoDB में देश, राज्य और शहर के अनुसार कलेक्शन को एग्रीगेट करना

    एग्रीगेशन ऑपरेशन कई दस्तावेज़ों से मानों को समूहित करते हैं, और समूहित डेटा पर विभिन्न ऑपरेशन करके एकल परिणाम लौटाते हैं। नमूना डेटा बनाना db.demo620.insertOne({Country:IND,City:Mumbai,state:Maharashtra}); सभी दस्तावेज़ देखना db.demo620.find(); { Country : IND, City : Delhi, state : Delhi } { Co

  1. - MongoDB एग्रीगेशन में मल्टीपल फ़ील्ड्स द्वारा काउंट करना

    एक ही पाइपलाइन में कई फ़ील्ड्स पर काउंट करने के लिए $facet का उपयोग करें। डेमो डेटा db.demo721.insertOne({ details1: { id:101 }, details2: { id:101 }, details3: { id:101 } }); db.demo721.insertOne({ details1: { id:101 }, details2: { id:102 }, details3: { id:102 } }); क्वेरी