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

MongoDB में पोजीशनल ऑपरेटर $ से ऐरे के विशिष्ट ऑब्जेक्ट प्राप्त करें

MongoDB प्रोजेक्शन में पोजीशनल $ ऑपरेटर से ऐरे का मैचिंग एलिमेंट लौटाएं

क्वेरी कंडीशन से मैच करने वाले ऐरे एलिमेंट को ही प्रोजेक्शन में शामिल करने के लिए पोजीशनल $ ऑपरेटर उपयोग करें।

कलेक्शन बनाएं और डॉक्यूमेंट इन्सर्ट करें

> db.getASpecificObjectDemo.insertOne({
  _id: 1,
  "CustomerName": "Larry",
  "CustomerDetails": {
    "CustomerPurchaseDescription": [
      {id: 100, "ProductName": "Product-1", "Amount": 10000},
      {id: 101, "ProductName": "Product-2", "Amount": 10500},
      {id: 102, "ProductName": "Product-3", "Amount": 10200}
    ]
  }
});
{ "acknowledged": true, "insertedId": 1 }

डॉक्यूमेंट देखें

> db.getASpecificObjectDemo.find().pretty();
{
  "_id": 1,
  "CustomerName": "Larry",
  "CustomerDetails": {
    "CustomerPurchaseDescription": [
      {"id": 100, "ProductName": "Product-1", "Amount": 10000},
      {"id": 101, "ProductName": "Product-2", "Amount": 10500},
      {"id": 102, "ProductName": "Product-3", "Amount": 10200}
    ]
  }
}

id = 101 वाला परचेज विवरण प्राप्त करें

> db.getASpecificObjectDemo.find(
  {_id: 1, "CustomerDetails.CustomerPurchaseDescription.id": 101},
  {_id: 0, "CustomerDetails.CustomerPurchaseDescription.$": 1}
);
{ "CustomerDetails": { "CustomerPurchaseDescription": [{"id": 101, "ProductName": "Product-2", "Amount": 10500}] } }

कैसे काम करता है

  • क्वेरी: _id: 1 और ऐरे में id: 101 वाला एलिमेंट
  • प्रोजेक्शन: "CustomerDetails.CustomerPurchaseDescription.$": 1
  • $ - क्वेरी से मैच करने वाला पहला ऐरे इंडेक्स को रिप्रेजेंट करता है
  • केवल वही एलिमेंट परिणाम में शामिल होता है

सीमाएं

  • केवल पहला मैचिंग एलिमेंट लौटाता है
  • एक ही प्रोजेक्शन में एकाधिक पोजीशनल $ नहीं उपयोग कर सकते
  • नेस्टेड ऐरे के लिए काम नहीं करता (केवल एक लेवल)

नेस्टेड ऐरे के लिए: $elemMatch प्रोजेक्शन

db.collection.find(
  {_id: 1},
  {nestedArray: {$elemMatch: {id: 101}}}
)
  1. - MongoDB में Document के अंदर Array के अंदर Object Update करने का Syntax

    इसके लिए MongoDB में findOneAndUpdate() का उपयोग करें। findOneAndUpdate() method filter और sort criteria के आधार पर single document update करता है। Collection बनाना > db.demo553.insertOne( ... { ... id:101, ... Name:John, ... midExamDetails: ... [ ... {SubjectName:MySQL,Marks:70}, ..

  1. - MongoDB एग्रीगेशन: दस्तावेज और ऐरे एलिमेंट्स से औसत प्राप्त करें

    इसके लिए, $avg के साथ $group और aggregate() का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo598.insertOne({ Information:Student, id:100, details:[ {Name:Chris,Marks:75}, {Name:Bob,Marks:55} ] }); { acknowledged : true, insertedId : ObjectId(5e9

  1. - MongoDB दस्तावेज़ों में विशिष्ट फ़ील्ड के ऐरे एलिमेंट्स काउंट करना

    किसी फ़ील्ड में ऐरे एलिमेंट्स की संख्या गिनने के लिए $size ऑपरेटर का उपयोग करें। डेमो डेटा > db.demo723.insertOne({Subject:[MySQL,MongoDB]}); > db.demo723.insertOne({Subject:[C]}); > db.demo723.insertOne({Subject:[C++,Java,Python]}); क्वेरी db.demo723.aggregate([ { $project: { count: