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

MongoDb एकत्रीकरण:सरणी -1 और सरणी -2 दिए जाने पर मैं किसी अन्य सरणी -2 के आधार पर सरणी -1 को कैसे समूहित कर सकता हूं?

अगर मैंने "पहेली" पोस्ट को सही ढंग से समझा है (पोस्ट शीर्षक और संपादित करें अलग-अलग उपयोग के मामले हैं), हम एक $lookup . के साथ वांछित परिणाम प्राप्त कर सकते हैं :

db.poll.aggregate([
  {
    "$match": {
      "_id": 100
    }
  },
  {
    "$lookup": {
      "from": "castedvotes",
      "localField": "pollId",
      "foreignField": "choices.id",
      "as": "voters"
    }
  },
  {
    $project: {
      numberOfVotes: {
        $size: "$voters"
      },
      hasThisUserVoted: {
        $in: [
          "$_id",
          "$voters.pollId"
        ]
      },
      /**How to calculate it?*/
      numberOfComments: {
        $multiply: [
          {
            $size: "$voters"
          },
          2
        ]
      },
      castedVotesPerChoice: {
        $arrayToObject: {
          $map: {
            input: "$choices",
            as: "choice",
            in: {
              k: "$$choice.name",
              v: {
                $filter: {
                  input: "$voters",
                  as: "voter",
                  cond: {
                    $eq: [
                      "$$voter.choice",
                      "$$choice.id"
                    ]
                  }
                }
              }
            }
          }
        }
      }
    }
  }
])

मोंगो खेल का मैदान




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मॉर्फिया का परिचय - मोंगोडीबी के लिए जावा ओडीएम

  2. MongoDB प्रतिकृति को AWS पर पूरे क्षेत्र में तैनात करना

  3. एक ही सर्वर पर मोंगो डीबी के कई उदाहरण

  4. MongoDB मल्टीकी इंडेक्स और इंडेक्स इंटरसेक्शन बाउंड्स

  5. Find और FindAsync के बीच अंतर