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

मोंगोडब एकत्रीकरण:$कम अपेक्षित रूप से काम नहीं कर रहा है

  • $max key . से अधिकतम मान प्राप्त करने के लिए फ़ील्ड की सरणी a , यह -15 return लौटाएगा आपके दस्तावेज़ों के अनुसार
  • $filter -15 . के बराबर वस्तु प्राप्त करने के लिए मूल्य
  • $first $filter . से लौटे परिणाम से पहली वस्तु प्राप्त करें
db.collection.aggregate([
  {
    $addFields: {
      winner: {
        $first: {
          $filter: {
            input: "$key",
            cond: { $eq: ["$$this.a", { $max: "$key.a" }] }
          }
        }
      }
    }
  }
])

खेल का मैदान

दूसरा विकल्प $reduce . का उपयोग करके ऑपरेटर,

  • प्रारंभिक फ़ील्ड सेट करें maxValue कम करने में, key . से अधिकतम मान फ़ील्ड की सरणी a
  • स्थिति जांचें यदि maxValue और a मूल्य मिलान फिर अधिकतम वस्तु लौटाएं
db.collection.aggregate([
  {
    $addFields: {
      winner: {
        $reduce: {
          input: "$key",
          initialValue: { maxValue: { $max: "$key.a" } },
          in: {
            $cond: [
              { $eq: ["$$this.a", "$$value.maxValue"] },
              "$$this",
              "$$value"
            ]
          }
        }
      }
    }
  }
])

खेल का मैदान




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:क्रॉस-संग्रह क्वेरी

  2. Node.js में एक तुल्यकालिक MongoDB क्वेरी बनाने का सही तरीका क्या है?

  3. मौजूदा MongoDB डेटाबेस से डेटा कैसे प्राप्त करें?

  4. Mongodb में .aggregate का उपयोग करके findOne के बराबर क्या है?

  5. मोंगोडब में एक एकत्रीकरण में कई समूहों को मिलाएं