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

MongoDB में कैसे सिलेक्ट करें जहां ऐरे में केवल एक विशिष्ट फील्ड हो?

MongoDB में ऐरे के एक्सैक्ट मैच से डॉक्यूमेंट्स खोजना

MongoDB में उन डॉक्यूमेंट्स को खोजने के लिए जहां ऐरे में केवल एक विशिष्ट वैल्यू हो (और कोई अन्य नहीं), आप ऐरे के एक्सैक्ट मैच का उपयोग कर सकते हैं।

उदाहरण: कलेक्शन और डॉक्यूमेंट्स बनाना

> db.arrayContainOnlySpecificFieldDemo.insertOne(
...   {
...     "StudentName":"John",
...     "StudentAge":21,
...     "StudentTechnicalSubject":["C","Java","MongoDB"]
...   }
... );
{ "acknowledged" : true, "insertedId" : ObjectId("5cc4921dac184d684e3fa26a") }
> db.arrayContainOnlySpecificFieldDemo.insertOne(
...   { "StudentName":"Carol", "StudentAge":23, "StudentTechnicalSubject":["MongoDB"] }
... );
{ "acknowledged" : true, "insertedId" : ObjectId("5cc49237ac184d684e3fa26b") }

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

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

आउटपुट:

{ "_id" : ObjectId("5cc4921dac184d684e3fa26a"), "StudentName" : "John", "StudentAge" : 21, "StudentTechnicalSubject" : [ "C", "Java", "MongoDB" ] }
{ "_id" : ObjectId("5cc49237ac184d684e3fa26b"), "StudentName" : "Carol", "StudentAge" : 23, "StudentTechnicalSubject" : [ "MongoDB" ] }

केवल "MongoDB" वाले ऐरे के डॉक्यूमेंट्स खोजना

> db.arrayContainOnlySpecificFieldDemo.find({"StudentTechnicalSubject":["MongoDB"]}).pretty();

आउटपुट:

{ "_id" : ObjectId("5cc49237ac184d684e3fa26b"), "StudentName" : "Carol", "StudentAge" : 23, "StudentTechnicalSubject" : [ "MongoDB" ] }

महत्वपूर्ण: यह क्वेरी एक्सैक्ट ऐरे मैच करती है - ऐरे में केवल "MongoDB" होना चाहिए, न कोई अतिरिक्त एलिमेंट, न अलग क्रम।

संबंधित क्वेरीज:

  • { "StudentTechnicalSubject": "MongoDB" } - ऐरे में "MongoDB" हो (अन्य एलिमेंट्स भी हो सकते हैं)
  • { "StudentTechnicalSubject": { $all: ["MongoDB"] } } - ऐरे में "MongoDB" हो (कम से कम)
  • { "StudentTechnicalSubject": { $size: 1, $in: ["MongoDB"] } } - ऐरे का साइज 1 हो और उसमें "MongoDB" हो
  1. - MongoDB Query - केवल Specific Field Value Update करना

    आइए उदाहरण देखते हैं और documents के साथ collection बनाते हैं: Collection बनाना > db.demo557.insertOne({Name:Chris}); { acknowledged : true, insertedId : ObjectId(5e8f28e954b4472ed3e8e864) } > db.demo557.insertOne({Name:David}); { acknowledged : true, insertedId : ObjectId(5e8f28ee54b4472ed3e

  1. - MongoDB में विशिष्ट फ़ील्ड न रखने वाले दस्तावेज़ ढूंढना

    किसी फ़ील्ड की अनुपस्थिति जांचने के लिए $exists: false का उपयोग करें। डेमो डेटा db.demo612.insertOne({id:1,Info:[{Name:Chris,Age:21},{Name:David}]}); क्वेरी db.demo612.aggregate([ {$unwind: $Info}, {$match: {Info.Age:{$exists: false}}}, {$project: {Info.Name: 1}} ]) परिणाम { _id : Obj

  1. - MongoDB में $project का उपयोग करके सरणी में केवल विशिष्ट फील्ड प्रदर्शित करें और अन्य फील्ड्स को अनदेखा करें

    विशिष्ट फील्ड प्रदर्शित करने के लिए $project के साथ $unwind का उपयोग करें। किसी फील्ड को अनदेखा करने के लिए उसे 0 पर सेट करें। आइए एक कलेक्शन बनाते हैं: > db.demo731.insertOne({ ProductInformation: [ { ProductId:Product-1, ProductPrice:80 }, { ProductId:Product-2, ProductPrice:45 }, { ProductId: