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

MongoDB क्वेरी परिणाम उलटें ($and ऑपरेशन का विपरीत लागू करें)

MongoDB में $nor और $ne का उपयोग करके $and का विपरीत लागू करना

$and ऑपरेशन का तार्किक विपरीत (NOT (A AND B)) डी मॉर्गन के नियम के अनुसार (NOT A) OR (NOT B) के बराबर होता है। MongoDB में इसे $or के साथ $ne का उपयोग करके व्यक्त किया जा सकता है।

सैंपल डेटा बनाना

> db.demo4.insert({uid:1,"Name":"Chris","Age":22});
WriteResult({ "nInserted" : 1 })
> db.demo4.insert({uid:2,"Name":"David","Age":21});
WriteResult({ "nInserted" : 1 })
> db.demo4.insert({uid:3,"Name":"Bob","Age":23});
WriteResult({ "nInserted" : 1 })
> db.demo4.insert({uid:1,"Name":"Carol","Age":20});
WriteResult({ "nInserted" : 1 })

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

> db.demo4.find();

आउटपुट:


इनवर्स क्वेरी: uid=2 AND (Name≠Carol OR Age≠21)


आउटपुट:


तार्किक विश्लेषण

मूल क्वेरी (काल्पनिक): uid=2 AND Name="Carol" AND Age=21

इसका विपरीत: NOT (uid=2 AND Name="Carol" AND Age=21)

डी मॉर्गन: uid≠2 OR Name≠"Carol" OR Age≠21

लेकिन उदाहरण में क्वेरी है: uid=2 AND (Name≠"Carol" OR Age≠21)

यह uid=2 वाले दस्तावेज़ों में से उनको चुनता है जहां **Name "Carol" नहीं है OR Age 21 नहीं है**।

चूंकि uid=2 वाले दस्तावेज़ का Name="David" (≠Carol) है, शर्त पूरी होती है और दस्तावेज़ लौटाया जाता है।

सही इनवर्स पैटर्न्स

मूल शर्तविपरीत (नेगेशन)MongoDB सिंटैक्स
A AND BNOT A OR NOT B{ $or: [ { A: { $ne: ... } }, { B: { $ne: ... } } ] }
A OR BNOT A AND NOT B{ $and: [ { A: { $ne: ... } }, { B: { $ne: ... } } ] }
{ $and: [A, B] }{ $nor: [A, B] }{ $nor: [ A, B ] }
{ $or: [A, B] }{ $nor: [A, B] }{ $nor: [ A, B ] }

$nor का उपयोग (सरल)


$not का उपयोग

            
  1. - MongoDB क्वेरी: केस इनसेंसिटिव तरीके से विशिष्ट नाम वाले डॉक्यूमेंट्स प्रदर्शित करें

    इसके लिए MongoDB में $regex का उपयोग करें। हम David नाम वाले डॉक्यूमेंट फील्ड मान को केस की परवाह किए बिना खोजेंगे। आइए एक कलेक्शन बनाते हैं: > db.demo700.insertOne( { details: [ { Name:david }]}); { acknowledged : true, insertedId : ObjectId(5ea6e6b1551299a9f98c93ac) } > db.demo700.insertOne

  1. - MongoDB क्वेरी: फील्ड के रिटर्निंग वैल्यूज को लिमिट करें

    इसके लिए $slice का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo594.insertOne({ id:1, details:[ {Name:Chris,Age:21}, {Name:Bob,Age:20}, {Name:David,Age:23}, {Name:Sam,Age:22} ] }); { acknowledged : true, insertedId : ObjectId(5e9334

  1. - MongoDB में डॉक्यूमेंट का अधिकतम आकार क्या है?

    डॉक्यूमेंट एक कलेक्शन में एक रिकॉर्ड होता है। प्रत्येक डॉक्यूमेंट की आकार सीमा 16 MB होती है। डॉक्यूमेंट कर्ली ब्रैकेट ({}) के अंदर लपेटा होता है। आइए एक कलेक्शन बनाते हैं: > db.demo748.insertOne({_id:101,Name:Chris,Age:21}); { acknowledged : true, insertedId : 101 } > db.demo748.insertOne({_