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

MongoDB एग्रीगेट के साथ दो सरणियों के बीच डॉट उत्पाद की गणना करें

यह मानते हुए कि दोनों सरणियों की लंबाई समान है, आप नीचे एकत्रीकरण का उपयोग कर सकते हैं:

db.collection.aggregate([
    {
        $project: {
            dotProduct: {
                $reduce: {
                    input: { $range: [ 0, { $size: "$source" }] },
                    initialValue: 0,
                    in: { $add: [ "$$value", { $multiply: [ { $arrayElemAt: [ "$source", "$$this" ] }, { $arrayElemAt: [ "$sink", "$$this" ] } ] } ] }
                }
            }
        }
    }    
])

$range इस मामले में 4 तत्वों की एक सरणी उत्पन्न करने के लिए प्रयोग किया जाता है (0,1,2,3) और उनका उपयोग $arrayElemAt के लिए अनुक्रमणिका के रूप में किया जाता है ऑपरेटर। $reduce स्केलर वैल्यू लौटाने वाले विशेष इंडेक्स के लिए सभी उत्पादों को सरलता से बताता है। $reduce . में दो विशेष वेरिएबल का उपयोग किया जाता है :$$value $$this . के दौरान योग का प्रतिनिधित्व करता है $range . द्वारा उत्पन्न सूचकांक का प्रतिनिधित्व करता है




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB और अपर इश्यू

  2. क्या कुल मिलाकर स्कीमा में मोंगोज़/मोंगोडब के पास ऑब्जेक्ट संदर्भों तक पहुंच है?

  3. Mongodb क्वेरी निष्पादन में बहुत अधिक समय लगता है

  4. MongoDB / Geojson $geointersects समस्याएं

  5. इसके कारण:org.bson.BsonInvalidOperationException:अमान्य स्थिति INITIAL