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

MongoDB में true/false मानों के आधार पर क्वेरी कैसे करें?

MongoDB में बूलियन फील्ड के आधार पर दस्तावेज़ फ़िल्टर करने के लिए, सीधे क्वेरी में true या false का उपयोग करें। नेस्टेड सरणी में फील्ड के अस्तित्व की जांच के लिए, डॉट नोटेशन के साथ $exists का उपयोग करें।

उदाहरण: नेस्टेड विवरण और isMarried फ्लैग

> db.demo367.insertOne({
    "Id" : "102",
    "details" : [
        { "Name" : "David" },
        { "Age" : 23, "CountryName" : "UK" }
    ],
    "isMarried" : false
});
{ "acknowledged" : true, "insertedId" : ObjectId("5e57e0b62ae06a1609a00ae8") }
> db.demo367.insertOne({
    "Id" : "101",
    "details" : [
        { "Name" : "Chris", "Subject" : [ "MySQL" ] },
        { "Age" : 21, "CountryName" : "US" }
    ],
    "isMarried" : true
});
{ "acknowledged" : true, "insertedId" : ObjectId("5e57e0be2ae06a1609a00ae9") }

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

> db.demo367.find();

आउटपुट: दो दस्तावेज़ जिनमें अलग-अलग isMarried मान और अलग-अलग नेस्टेड फील्ड हैं।

टॉप-लेवल बूलियन द्वारा क्वेरी

> db.demo367.find({ "isMarried": true });

केवल दूसरा दस्तावेज़ लौटाता है।

नेस्टेड सरणी में फील्ड अस्तित्व द्वारा क्वेरी ($exists)

ऐसे दस्तावेज़ ढूंढें जहां details सरणी में कोई ऑब्जेक्ट Subject फील्ड नहीं रखता:

> db.demo367.find({ "details.Subject": { $exists: false } });

आउटपुट: पहला दस्तावेज़ (कोई Subject नहीं)।

व्याख्या

  • details.Subject डॉट नोटेशन सरणी के अंदर किसी भी तत्व में Subject फील्ड की जांच करता है।
  • $exists: false उन दस्तावेज़ों से मेल खाता है जहां सरणी में कोई भी तत्व फील्ड नहीं रखता।
  • $exists: true उन दस्तावेज़ों से मेल खाएगा जहां कम से कम एक तत्व में फील्ड हो।

नोट

मूल शीर्षक "$exists के साथ true/false मानों के आधार पर खोज" का उल्लेख करता है, लेकिन उदाहरण नेस्टेड फील्ड अस्तित्व दिखाता है। टॉप-लेवल बूलियन फील्ड के लिए, सीधे {isMarried: true} का उपयोग करें।

  1. - MongoDB एग्रीगेशन: सभी दस्तावेजों में विशिष्ट मानों की गिनती

    इसके लिए MongoDB में aggregate() का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo718.insertOne({ id:101, details: { OtherDetails: [Chris, Mike, Sam], GroupName: [Group-1], Info: [] } }); { acknowledged : true, insertedId : ObjectId(5eaae258

  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 क्वेरी: फील्ड मानों में "@email" जैसे स्ट्रिंग की खोज करें

    MongoDB find() का उपयोग करके ईमेल स्ट्रिंग खोजें। आइए एक कलेक्शन बनाते हैं: > db.demo727.insertOne({UserId:John@email.com}); { acknowledged : true, insertedId : ObjectId(5eab375f43417811278f5898) } > db.demo727.insertOne({UserId:John@yahoo.com}); { acknowledged : true, insertedId : ObjectId(5