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

मुख्य मूल्य के लिए वस्तुओं की परियोजना सरणी

हाँ, $arrayToObject का उपयोग करके और $map मौजूदा सरणी को उस प्रारूप में बदलने के लिए जिसे वह स्वीकार करता है:

db.collection.aggregate([
  { "$replaceRoot": {
    "newRoot": {
      "$arrayToObject": {
        "$concatArrays": [
          [{ "k": "date", "v": "$_id.date" }],  
          { "$map": {
            "input": "$aggr",
            "in": { "k": "$$this.gender", "v": "$$this.count" }
          }}
        ]
      }
    }    
  }}
])

बेशक अगर यह वास्तव में केवल मौजूदा एकत्रीकरण की "पूंछ" पर है और आपके पास कम से कम मोंगोडीबी 3.4.4 नहीं है जहां ऑपरेटर पेश किया गया है, तो आप क्लाइंट कोड में परिणाम को आसानी से दोबारा बदल सकते हैं:

db.collection.aggregate([
  // existing pipeline
]).map(d => 
  Object.assign(
    { date: d._id.date },
    d.aggr.reduce((acc,curr) =>
      Object.assign(acc,{ [curr.gender]: curr.count }),{}
    )
  )
)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मैं mongodb का उपयोग करके सरणी के अंदर elemMatch कैसे कर सकता हूं?

  2. डॉकर कंपोज़ का उपयोग करके मोंगोडीबी और रेडपांडा के लिए एप्लिकेशन कैसे विकसित करें

  3. मोंगोडीबी अपडेटफर्स्ट मेथड यूसेज

  4. पार्स त्रुटि:सिंटैक्स त्रुटि, अनपेक्षित '}' C:\xampp\htdocs\lib\autors.php में लाइन 8 पर

  5. सभी मेजबानों को मोंगोडब में एक प्रतिकृति सेट की अनुमति कैसे दें