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

MongoDB क्वेरी, सॉर्ट करें और फिर समूह के लिए nth दस्तावेज़ लें

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

  1. देश-वार और रेटिंग-वार क्रमित करें जैसा आप पहले ही कर चुके हैं
  2. देश के अनुसार समूह बनाएं और सभी खिलाड़ी विवरण को एक सरणी में पुश करें
  3. यह एक नैदानिक ​​है। project का उपयोग करें $arrayElemAt . के साथ ith . प्राप्त करने के लिए संबंधित देशों में से प्रत्येक के लिए रेटेड खिलाड़ी
  4. आपको वांछित प्रारूप में वस्तु देने के लिए प्रोजेक्ट का पुन:उपयोग करें

    db.getCollection('players').aggregate(
    {
        $sort: {country: 1, rating: -1}
    },
    {
        $group:   {
            _id: "$country", 
            players: {$push: {name: "$name", rating: "$rating", event: "$event"}}
        }
    },
    {
        $project: {
            player: {$arrayElemAt: ["$players", iTH_RATING]}
        } 
    },
    {
        $project: {
            name: "$player.name",
            rating: "$player.rating",
            event: "$player.event"
            }
    })
    

2nd Highest Rated Players . के लिए नीचे स्क्रीन ग्रैब देखें . चूंकि ये 0-indexed . हैं , iTH_RATING क्वेरी में वेरिएबल को 1 से बदल दिया गया है। उच्चतम रेटेड खिलाड़ियों को 0 से बदलने के लिए, इत्यादि।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongoose का उपयोग करके MongoDB को Node.js SSH टनलिंग

  2. एक नेवला दस्तावेज़ के अंदर एक सरणी को क्वेरी करना

  3. MongoDB $asinh

  4. सच के अद्वितीय बूलियन के साथ नेवला

  5. नोड.जेएस से मोंगोडब से कनेक्ट करते समय ECONNREFUSED त्रुटि