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

MongoDB में ऑब्जेक्ट्स के ऐरे में परिणाम खोजें और ईमेल एड्रेस फील्ड से मिलान करें

MongoDB में नेस्टेड ऑब्जेक्ट्स ऐरे में फील्ड मिलान

ऑब्जेक्ट्स के ऐरे में विशिष्ट फील्ड मानों से मिलान करने वाले डॉक्यूमेंट्स खोजें।

कलेक्शन बनाना

>db.demo144.insertOne({"EmployeeDetails":[{"EmployeeName":"Chris","EmployeeEmail":"Chris12@gmail.com"},{"EmployeeName":"Bob","EmployeeEmail":"bo22@gmail.com"}]});
{ "acknowledged": true, "insertedId": ObjectId("5e32f1d8fdf09dd6d08539b9") }
>db.demo144.insertOne({"EmployeeDetails":[{"EmployeeName":"David","EmployeeEmail":"david@gmail.com"},{"EmployeeName":"Carol","EmployeeEmail":"Carol@gmail.com"}]});
{ "acknowledged": true, "insertedId": ObjectId("5e32f1f5fdf09dd6d08539ba") }

सभी डॉक्यूमेंट्स

> db.demo144.find();
{ "_id": ObjectId("5e32f1d8fdf09dd6d08539b9"), "EmployeeDetails": [ { "EmployeeName": "Chris", "EmployeeEmail": "Chris12@gmail.com" }, { "EmployeeName": "Bob", "EmployeeEmail": "bo22@gmail.com" } ] }
{ "_id": ObjectId("5e32f1f5fdf09dd6d08539ba"), "EmployeeDetails": [ { "EmployeeName": "David", "EmployeeEmail": "david@gmail.com" }, { "EmployeeName": "Carol", "EmployeeEmail": "Carol@gmail.com" } ] }

ईमेल और नाम से मिलान करने की क्वेरी

>db.demo144.find({"EmployeeDetails.EmployeeName":"David","EmployeeDetails.EmployeeEmail":"david@gmail.com"},{"EmployeeDetails.EmployeeName":1});

परिणाम


व्याख्या

  • क्वेरी भाग: {"EmployeeDetails.EmployeeName":"David","EmployeeDetails.EmployeeEmail":"david@gmail.com"}
    • डॉट नोटेशन का उपयोग करके नेस्टेड फील्ड्स तक पहुँचता है
    • दोनों शर्तें एक ही सब-डॉक्यूमेंट को संतुष्ट करनी चाहिए (MongoDB का अंतर्निहित व्यवहार)
  • प्रोजेक्शन भाग: {"EmployeeDetails.EmployeeName":1}
    • केवल EmployeeName फील्ड लौटाता है
    • लेकिन ध्यान दें: ऐरे के सभी तत्वों के लिए EmployeeName लौटाता है, केवल मिलान वाले के लिए नहीं

महत्वपूर्ण सीमा

प्रोजेक्शन में ऐरे फील्ड के लिए, MongoDB पूरे ऐरे को लौटाता है (केवल मिलान वाले तत्व नहीं)। केवल मिलान वाले सब-डॉक्यूमेंट्स प्राप्त करने के लिए $elemMatch प्रोजेक्शन या एग्रीगेशन ($unwind + $match) का उपयोग करें।

  1. - MongoDB में ऑब्जेक्ट्स की सरणी के अंदर कई मिलान कैसे खोजें?

    इसके लिए, $and के साथ $regex का उपयोग करें। $and एक या अधिक एक्सप्रेशन की सरणी पर लॉजिकल AND ऑपरेशन करता है और उन दस्तावेज़ों को चुनता है जो सरणी में सभी एक्सप्रेशन को संतुष्ट करते हैं। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo525.insertOne({details:[{Name:Chris,CountryName:US}]}); { ackn

  1. - MongoDB में सरणी के भीतर मिलान ऑब्जेक्ट्स की संख्या के आधार पर डॉक्यूमेंट्स कैसे ढूंढें?

    आइए एक उदाहरण देखते हैं और डॉक्यूमेंट्स के साथ एक कलेक्शन बनाते हैं: > db.demo694.insertOne( ... { details : [ { Name : Chris, Age:21 }, { Name : David, Age:22 } ] } ); { acknowledged : true, insertedId : ObjectId(5ea59279ece4e5779399c07f) } > db.demo694.insertOne( ... { details : [ { Name :

  1. - MongoDB क्वेरी: ऐरे फील्ड वाले दस्तावेजों को मैच करें

    ऐरे फील्ड वाले दस्तावेजों को मैच करने के लिए, $elemMatch ऑपरेटर का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo592.insertOne({ id:101, details: [ { Name: Chris, Value: 200 }, { Name: David, Value: 800 } ] }); { acknowledged : true, insertedId : Ob