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

MongoDB में दोनों फील्ड FALSE वाले दस्तावेज़ बाहर कैसे करें?

MongoDB में दो बूलियन फील्ड में से कम से कम एक TRUE वाले दस्तावेज़ ढूंढने के लिए $expr के साथ $or ऑपरेटर का उपयोग करें।

उदाहरण

दो बूलियन फील्ड वाले दस्तावेज़ बनाएं:

> db.orTwoFieldsDemo.insertOne({"isLiveInUS": true, "isMarried": false});
{ "acknowledged" : true, "insertedId" : ObjectId("5cdfd86abf3115999ed5120d") }
> db.orTwoFieldsDemo.insertOne({"isLiveInUS": true, "isMarried": true});
{ "acknowledged" : true, "insertedId" : ObjectId("5cdfd876bf3115999ed5120e") }
> db.orTwoFieldsDemo.insertOne({"isLiveInUS": false, "isMarried": false});
{ "acknowledged" : true, "insertedId" : ObjectId("5cdfd87dbf3115999ed5120f") }

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

> db.orTwoFieldsDemo.find();
{ "_id" : ObjectId("5cdfd86abf3115999ed5120d"), "isLiveInUS" : true, "isMarried" : false }
{ "_id" : ObjectId("5cdfd876bf3115999ed5120e"), "isLiveInUS" : true, "isMarried" : true }
{ "_id" : ObjectId("5cdfd87dbf3115999ed5120f"), "isLiveInUS" : false, "isMarried" : false }

दोनों FALSE वाले दस्तावेज़ बाहर करें (कम से कम एक TRUE)

> db.orTwoFieldsDemo.find({ $expr: { $or: ["$isLiveInUS", "$isMarried"] } });

आउटपुट:

{ "_id" : ObjectId("5cdfd86abf3115999ed5120d"), "isLiveInUS" : true, "isMarried" : false }
{ "_id" : ObjectId("5cdfd876bf3115999ed5120e"), "isLiveInUS" : true, "isMarried" : true }

व्याख्या:

  • $expr - एग्रीगेशन एक्सप्रेशन को क्वेरी में उपयोग करने की अनुमति देता है
  • $or: ["$isLiveInUS", "$isMarried"] - दोनों फील्ड के मानों का तार्किक OR
  • तीसरा दस्तावेज़ (दोनों false) बाहर हो गया

विकल्प: सिंपल क्वेरी (MongoDB 3.6+)

db.orTwoFieldsDemo.find({
  $or: [
    {"isLiveInUS": true},
    {"isMarried": true}
  ]
});

यह तरीका अधिक पठनीय है और इंडेक्स का उपयोग कर सकता है। $expr संस्करण तब उपयोगी है जब फील्ड नाम डायनामिक हों या जटिल एक्सप्रेशन चाहिए।

सामान्य पैटर्न: "NOT (A=false AND B=false)" = "A=true OR B=true" (डी मॉर्गन का नियम)।

  1. - MongoDB क्वेरी: एकाधिक फ़ील्ड के अस्तित्व की जांच करें

    एकाधिक फ़ील्ड के अस्तित्व की जांच के लिए $exists के साथ $and ऑपरेटर का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo475.insertOne({"StudentFirstName":"Chris","StudentAge":23});{    "acknowledged" : true,    "inserte

  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 क्वेरी: _id को छोड़कर सभी फील्ड्स के मान प्रदर्शित करें

    आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo590.insert([ { Name: Chris, Age: 21 }, { Name: Bob, Age: 20 }, { Name: Sam, Age: 19 } ]); BulkWriteResult({ writeErrors: [], writeConcernErrors: [], nInserted: 3, nUpserted: 0, nMatched: 0, nModified: 0, nRemoved: 0, upserted: [] }