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

MongoDB में सरणी के अंदर आंशिक ऑब्जेक्ट के लिए क्वेरी

MongoDB में सरणी के अंदर आंशिक ऑब्जेक्ट (कुछ फील्ड) से मिलान करने के लिए दो तरीके उपयोग कर सकते हैं: पूर्ण ऑब्जेक्ट मिलान या डॉट नोटेशन।

उदाहरण

सरणी में ऑब्जेक्ट वाले दस्तावेज़ बनाएं:

> db.queryForPartialObjectDemo.insertOne({_id: new ObjectId(), "StudentDetails": [{"StudentId": 1, "StudentName": "Chris"}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cdfcf55bf3115999ed51206") }
>> db.queryForPartialObjectDemo.insertOne({_id: new ObjectId(), "StudentDetails": [{"StudentId": 2, "StudentName": "David"}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cdfcf55bf3115999ed51207") }

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

> db.queryForPartialObjectDemo.find().pretty();
{ "_id" : ObjectId("5cdfcf55bf3115999ed51206"), "StudentDetails" : [ { "StudentId" : 1, "StudentName" : "Chris" } ] }
{ "_id" : ObjectId("5cdfcf55bf3115999ed51207"), "StudentDetails" : [ { "StudentId" : 1, "StudentName" : "David" } ] }

पहला तरीका: पूर्ण ऑब्जेक्ट मिलान

> db.queryForPartialObjectDemo.find({StudentDetails: {StudentId: 1, "StudentName": "Chris"}});
{ "_id" : ObjectId("5cdfcf55bf3115999ed51206"), "StudentDetails" : [ { "StudentId" : 1, "StudentName" : "Chris" } ] }

नोट: यह सटीक ऑब्जेक्ट मिलान करता है - फील्ड क्रम और अतिरिक्त फील्ड नहीं होने चाहिए।

दूसरा तरीका: डॉट नोटेशन (अनुशंसित)

> db.queryForPartialObjectDemo.find({"StudentDetails.StudentName": "Chris"});
{ "_id" : ObjectId("5cdfcf55bf3115999ed51206"), "StudentDetails" : [ { "StudentId" : 1, "StudentName" : "Chris" } ] }

डॉट नोटेशन के लाभ:

  • केवल निर्दिष्ट फील्ड जांचता है, अन्य फील्ड अनदेखे
  • सरणी में किसी भी तत्व से मिलान करता है
  • अधिक लचीला और पठनीय
  • इंडेक्स का उपयोग कर सकता है

जब सरणी में एकाधिक ऑब्जेक्ट हों

यदि सरणी में कई ऑब्जेक्ट हैं और आप विशिष्ट संयोजन चाहते हैं (उदाहरण: StudentId=1 AND StudentName="Chris" एक ही ऑब्जेक्ट में), तो $elemMatch उपयोग करें:

db.collection.find({
  StudentDetails: {$elemMatch: {StudentId: 1, StudentName: "Chris"}}
})

यह सुनिश्चित करता है कि दोनों शर्तें एक ही सरणी तत्व में पूरी हों।

  1. - MongoDB में सबडॉक्यूमेंट्स के ऐरे को कैसे क्वेरी करें?

    सबडॉक्यूमेंट्स के ऐरे को क्वेरी करने के लिए MongoDB में $unwind का उपयोग करें। नमूना डेटा बनाना (सबडॉक्यूमेंट्स ऐरे) db.demo499.insertOne({ details: [ { Name:MIT, Rank: 1, CountryName:US }, { Name:Stanford University, Rank: 2 }, { Name:University of California, Berkeley, Rank: 3 }

  1. - MongoDB में नेस्टेड सरणी को कैसे सॉर्ट करें?

    MongoDB में नेस्टेड सरणी को सॉर्ट करने के लिए, $sort का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo505.insertOne( { details: [ { Name:Chris, Score:58 }, { Name:Bob, Score:45 }, { Name:John, Score:68 }, { Name:David, Score:46 } ] }); { ackn

  1. - MongoDB में सरणी में डुप्लिकेट की जांच कैसे करें?

    सरणी में डुप्लिकेट जांचने के लिए MongoDB में aggregate() का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo756.insertOne({SubjectName:[MySQL,MongoDB,Java]}); { acknowledged : true, insertedId : ObjectId(5eb01e0d5637cd592b2a4add) } > db.demo756.insertOne({SubjectName:[MongoDB,MySQL,MongoDB,C,C