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

MongoDB एक निश्चित फ़ील्ड द्वारा संग्रह में सभी कुंजियों और मानों को समूहित करता है

आप वहां सही रास्ते पर हैं।

संपूर्ण ऑब्जेक्ट को किसी सरणी में कनवर्ट करते समय, श्रेणी फ़ील्ड भी सहेजें।

आवश्यक चरण:

  • $प्रोजेक्ट श्रेणी को सहेजने और ऑब्जेक्ट को एक सरणी में बदलने के लिए
  • $प्रत्येक फ़ील्ड पर अलग से विचार करने के लिए सरणी को खोलना
  • $मिलान _id को हटाने के लिए , Category और कोई अन्य फ़ील्ड जिसे आप सरणी से समूहीकृत नहीं करना चाहते हैं
  • $समूह द्वारा Category और k प्रत्येक कुंजी के मानों को एक सरणी में धकेलने के लिए
  • $समूह द्वारा Category कुंजियों और सरणियों को एक साथ इकट्ठा करने के लिए
  • $प्रोजेक्ट एकत्रित मानों के साथ सरणी को किसी ऑब्जेक्ट में बदलने के लिए
  • $addFields श्रेणी को नई वस्तु में इंजेक्ट करने के लिए
  • $replaceRoot नई वस्तु को बढ़ावा देने के लिए
db.collection.aggregate([
  {$project: {
      Category: 1,
      fields: {$objectToArray: "$$ROOT"}
  }},
  {$unwind: "$fields"},
  {$match: {"fields.k": {$not: {$in: ["_id","Category"]}} }},
  {$group: {
      _id: {
        Category: "$Category",
        key: "$fields.k"
      },
      value: {$push: "$fields.v"}
  }},
  {$group: {
      _id: "$_id.Category",
      fields: {
        $push: {
          "k": "$_id.key",
          "v": "$value"
        }
      }
  }},
  {$project: {
      fields: {$arrayToObject: "$fields"}
  }},
  {$addFields: {
      "fields.Category": "$_id"
  }},
  {$replaceRoot: { newRoot: "$fields"}}
])

खेल का मैदान




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. फ्लास्क बैकएंड का उपयोग करके ब्राउज़र से MongoDB को क्वेरी करना

  2. MongoDB - एक संग्रह बनाएँ

  3. MongoDB:जाँच कर रहा है कि क्या नेस्टेड सरणी में उप-सरणी है

  4. मैट-सेव डेटा से डेटाबेस MongoDB में सेव करें

  5. मैं मोंगोज़ के साथ ऑब्जेक्ट आईडी कैसे उत्पन्न कर सकता हूं?