MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

MongoDB में स्तंभों को पिवट करें

अब, आप MongoDB कुंजियों को पिवट करने के लिए नए एकत्रीकरण ऑपरेटर $arrayToObject का उपयोग कर सकते हैं। यह ऑपरेटर MongoDB v3.4.4+

. में उपलब्ध है

उदाहरण के लिए, इसका एक उदाहरण डेटा दिया गया है:

db.foo.insert({ provider: "Facebook", timestamp: '1371798000000', name: 'page_storytellers', value: 20871})
db.foo.insert({ provider: "Facebook", timestamp: '1371798000000', name: 'page_fans', value: 1291509})
db.foo.insert({ provider: "Facebook", timestamp: '1371798000000', name: 'page_fan_adds', value: 2829})
db.foo.insert({ provider: "Google", timestamp: '1371798000000', name: 'page_fan_adds', value: 1000})

आप नीचे एग्रीगेशन पाइपलाइन का उपयोग कर सकते हैं:

db.foo.aggregate([
  {$group:
     {_id:{provider:"$provider", timestamp:"$timestamp"}, 
      items:{$addToSet:{name:"$name",value:"$value"}}}
  }, 
  {$project:
     {tmp:{$arrayToObject: 
       {$zip:{inputs:["$items.name", "$items.value"]}}}}
  }, 
  {$addFields:
     {"tmp.provider":"$_id.provider", 
      "tmp.timestamp":"$_id.timestamp"}
  }, 
  {$replaceRoot:{newRoot:"$tmp"}
  }
]);

आउटपुट होगा:

{
  "page_fan_adds": 1000,
  "provider": "Google",
  "timestamp": "1371798000000"
},
{
  "page_fan_adds": 2829,
  "page_fans": 1291509,
  "page_storytellers": 20871,
  "provider": "Facebook",
  "timestamp": "1371798000000"
}

यह भी देखें $group,$project,$addFields,$zip, तथा $replaceRoot



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. अपने नए बनाए गए MongoDB उदाहरणों में डेटा आयात करें

  2. MongoDB सर्वर प्रारंभ नहीं कर सकता:डिफ़ॉल्ट भंडारण इंजन 'wiredTiger' mongod के इस निर्माण के साथ उपलब्ध नहीं है

  3. सी # - मोंगोडीबी - नेस्टेड दस्तावेज़ के अंदर एक तत्व अपडेट करें

  4. _id . पर मोंगोडब सॉर्ट ऑर्डर

  5. MongoDB में निगरानी करने के लिए मुख्य बातें