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

MongoDB में एकाधिक डॉक्यूमेंट फील्ड्स पर सटीक मिलान क्वेरी

MongoDB में $in और $and का उपयोग करके एकाधिक फील्ड्स पर सटीक मिलान करना

MongoDB में एकाधिक फील्ड्स पर सटीक मान मिलान के लिए $and के साथ $in ऑपरेटर का संयोजन उपयोग करें। यह प्रत्येक फील्ड के लिए मानों के सेट में से किसी एक से मेल खाता है।

उदाहरण: संग्रह और दस्तावेज़ बनाना

> db.demo422.insertOne({"Name":"Chris","Marks":34});
{ "acknowledged" : true, "insertedId" : ObjectId("5e73a4059822da45b30346e1") }
> db.demo422.insertOne({"Name":"Chris","Marks":56});
{ "acknowledged" : true, "insertedId" : ObjectId("5e73a40a9822da45b30346e2") }
> db.demo422.insertOne({"Name":"David","Marks":78});
{ "acknowledged" : true, "insertedId" : ObjectId("5e73a4149822da45b30346e3") }
> db.demo422.insertOne({"Name":"Sam","Marks":45});
{ "acknowledged" : true, "insertedId" : ObjectId("5e73a41e9822da45b30346e4") }
> db.demo422.insertOne({"Name":"David","Marks":89});
{ "acknowledged" : true, "insertedId" : ObjectId("5e73a4239822da45b30346e5") }

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

> db.demo422.find();

आउटपुट:

{ "_id" : ObjectId("5e73a4059822da45b30346e1"), "Name" : "Chris", "Marks" : 34 }
{ "_id" : ObjectId("5e73a40a9822da45b30346e2"), "Name" : "Chris", "Marks" : 56 }
{ "_id" : ObjectId("5e73a4149822da45b30346e3"), "Name" : "David", "Marks" : 78 }
{ "_id" : ObjectId("5e73a41e9822da45b30346e4"), "Name" : "Sam", "Marks" : 45 }
{ "_id" : ObjectId("5e73a4239822da45b30346e5"), "Name" : "David", "Marks" : 89 }

Name (Chris या David) AND Marks (34 या 89) पर सटीक मिलान

> db.demo422.find({'$and': [{'Name': {'$in': ['Chris', 'David']}, 'Marks': {'$in': [34,89]}}]});

आउटपुट:

{ "_id" : ObjectId("5e73a4059822da45b30346e1"), "Name" : "Chris", "Marks" : 34 }
{ "_id" : ObjectId("5e73a4239822da45b30346e5"), "Name" : "David", "Marks" : 89 }

व्याख्या:

  • $and - दोनों शर्तें पूरी होनी चाहिए
  • Name: {$in: ['Chris', 'David']} - Name Chris या David हो
  • Marks: {$in: [34,89]} - Marks 34 या 89 हो
  • संयोजन: (Chris,34), (Chris,89), (David,34), (David,89) - इन 4 संयोजनों में से कोई भी
  • परिणाम: केवल (Chris,34) और (David,89) मौजूद हैं

सरल समतुल्य (निहित AND):

db.demo422.find({
  Name: {$in: ['Chris', 'David']},
  Marks: {$in: [34, 89]}
})

MongoDB में शीर्ष-स्तरीय फील्ड्स निहित AND होते हैं।

सटीक दस्तावेज़ मिलान के लिए (सभी फील्ड्स):

db.demo422.find({
  $or: [
    {Name: "Chris", Marks: 34},
    {Name: "David", Marks: 89}
  ]
})

प्रदर्शन: कंपाउंड इंडेक्स {Name: 1, Marks: 1} इस क्वेरी को तेज़ करेगा।

  1. - MongoDB में शर्त से मेल खाने वाले कई सब-डॉक्यूमेंट्स से फ़ील्ड कैसे प्राप्त करें?

    कई सब-डॉक्यूमेंट्स से फ़ील्ड प्राप्त करने के लिए, $unwind के साथ MongoDB एग्रीगेट का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo671.insertOne( { details : [ { id : 1 }, { CountryName:US, details1 : [

  1. - MongoDB Collection Query - Find() में Some Fields Exclude करना

    जिन fields को include नहीं करना उन्हें 0 set करें। यहाँ हमने fields yourFieldName1 और yourFieldName2 को 0 set किया: db.yourCollectionName.find(yourQuery, {yourFieldName1:0,yourFieldName2:0}); Collection बनाना > db.demo567.insertOne({Name:Chris,Age:21}); { acknowledged : true, insertedId : Object

  1. - MongoDB find() क्वेरी: नेस्टेड दस्तावेज के लिए

    नेस्टेड दस्तावेज से मान प्राप्त करने के लिए, डॉट नोटेशन का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo591.insert([ { Name: John, Age: 23 }, { Name: Carol, Age: 26 }, { Name: Robert, Age: 29, details: [ { Email: Robert@gmail.com, CountryName: