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

MongoDB में ऐरे को n एट्रिब्यूट वाले दस्तावेज़ों के मैप में बदलना

MongoDB में $map और $arrayToObject का उपयोग करके ऐरे को ऑब्जेक्ट मैप में बदलना

MongoDB एग्रीगेशन में $map और $arrayToObject ऑपरेटरों का उपयोग करके किसी ऐरे को की-वैल्यू मैप में बदला जा सकता है, जहां प्रत्येक दस्तावेज़ का एक फील्ड की बन जाता है।

उदाहरण: संग्रह और दस्तावेज़ बनाना

> db.demo398.insertOne({
  "details":[
    {
      "Name":"Chris",
      "Age":22
    }
  ]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5e5e8cedfac4d418a017856c") }

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

> db.demo398.find();

आउटपुट:

{ "_id" : ObjectId("5e5e8cedfac4d418a017856c"), "details" : [ { "Name" : "Chris", "Age" : 22 } ] }

ऐरे को मैप में बदलने के लिए एग्रीगेशन क्वेरी

> db.demo398.aggregate([
  {
    "$addFields": {
      "details": {
        "$arrayToObject": {
          "$map": {
            "input": "$details",
            "as": "out",
            "in": {
              "k": "$$out.Name",
              "v": "$$out"
            }
          }
        }
      }
    }
  }
])

आउटपुट:

{ "_id" : ObjectId("5e5e8cedfac4d418a017856c"), "details" : { "Chris" : { "Name" : "Chris", "Age" : 22 } } }

मुख्य अवधारणाएं:

  • $map: ऐरे के प्रत्येक तत्व को ट्रांसफॉर्म करता है
  • $$out.Name: प्रत्येक दस्तावेज़ का Name फील्ड की (k) बन जाता है
  • $$out: पूरा दस्तावेज़ वैल्यू (v) बन जाता है
  • $arrayToObject: की-वैल्यू जोड़े के ऐरे को ऑब्जेक्ट में बदलता है
  1. - MongoDB क्वेरी: ऐरे फील्ड वाले दस्तावेजों को मैच करें

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

  1. - MongoDB में एम्बेडेड डॉक्यूमेंट की सरणी पर फ़िल्टर क्वेरी कैसे करें?

    इसके लिए MongoDB में aggregate() का उपयोग करें। आइए 3 स्तरों के नेस्टेड डॉक्यूमेंट्स के साथ एक कलेक्शन बनाते हैं: > db.demo736.insertOne( { _id: 101, details1: [ { details2: [ { details3: { Name: John } } ] } ] } ); { acknowledged : true, insertedId : 101 } > db.demo736.insertOne( { _id: 102,

  1. - MongoDB में एक क्वेरी से कई डॉक्यूमेंट्स कैसे अपडेट करें?

    एक क्वेरी से कई डॉक्यूमेंट्स अपडेट करने के लिए MongoDB में bulkWrite() का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo760.insertOne({id:1,details:{Value1:100,Value2:50}}); { acknowledged : true, insertedId : ObjectId(5eb0309f5637cd592b2a4aee) } > db.demo760.insertOne({id:2,details:{Value1: