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

नेवला, कुल में दो अलग-अलग क्षेत्रों का मिलान करें?

आप निम्नलिखित एकत्रीकरण का उपयोग कर सकते हैं:

db.col.aggregate([
    {
        $addFields: {
            weightedIds: {
              $map:
                 {
                   input: "$weighted",
                   as: "w",
                   in: "$$w.phaseId"
                 }
            }
        }
    },
    {
      $project: {
        _id: 1,
        weighted: 1,
        phases: {
            $filter: {
             input: "$phases",
             as: "phase",
             cond: { $gte: [ { $indexOfArray: [ "$weightedIds" , "$$phase._id" ] }, 0 ] }
            }
        }
      }
    }
])

हम $map . का उपयोग कर रहे हैं केवल phaseId लेने के लिए weighted . का क्षेत्र और फिर हम phases . को फ़िल्टर कर सकते हैं $filter का उपयोग करके प्रत्येक चरण के लिए जाँच कर रहा है कि क्या संबंधित id मौजूद है ($indexOfArray का उपयोग करके जो -1 अन्यथा लौटाता है)




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मैं किसी दी गई तारीख के लिए डेटा कैसे डंप करूं

  2. मोंगो डीबीआरएफ के साथ $ लुकअप कैसे करें

  3. एम्बेडेड दस्तावेज़ों/सरणी में फ़ील्ड के औसत की गणना करें

  4. Mongoimport के साथ MongoDB में JSON फ़ाइल आयात करें

  5. क्या मोंगो प्रश्नों में फ़ील्ड मानों की लंबाई सीमा है?