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

MongoDB एकत्रीकरण के साथ घटनाओं के संग्रह से रैखिक फ़नल, क्या यह संभव है?

मैंने अपने MongoDB ब्लॉग पर पूरा जवाब लिखा लेकिन एक सारांश के रूप में, आपको अपने कार्यों को प्रोजेक्ट करना है, जिसके आधार पर आप एक्शन फ़ील्ड के मूल्यों को उपयुक्त कुंजी नामों में मैप करना चाहते हैं, तीन कार्यों के लिए समूह द्वारा समूहित करना जब उन्होंने उन्हें किया (और वैकल्पिक रूप से कितनी बार ) और फिर नए क्षेत्रों को प्रोजेक्ट करें जो जांचते हैं कि क्या क्रिया 2 क्रिया 1 के बाद किया गया था, और क्रिया 3 क्रिया 2 के बाद किया गया था ... अंतिम चरण केवल उन लोगों की संख्या को बताता है जिन्होंने केवल 1, या 1 और फिर 2, या 1 और फिर 2 और फिर 3.

एकत्रीकरण पाइपलाइन को उत्पन्न करने के लिए एक फ़ंक्शन का उपयोग करके, पास की गई क्रियाओं की सरणी के आधार पर परिणाम उत्पन्न करना संभव है।

मेरे परीक्षण मामले में, 40,000 दस्तावेज़ों के संग्रह के लिए पूरी पाइपलाइन 200ms से कम में चली (यह मेरे छोटे लैपटॉप पर थी)।

जैसा कि सही ढंग से बताया गया था, मेरे द्वारा वर्णित सामान्य समाधान यह मानता है कि एक अभिनेता कई बार कोई कार्रवाई कर सकता है कि वे केवल एक्शन 1 से एक्शन 2 तक ही आगे बढ़ सकते हैं, लेकिन वे सीधे एक्शन 1 से एक्शन 3 तक नहीं जा सकते हैं (पूर्वापेक्षाओं का वर्णन करने के रूप में एक्शन ऑर्डर की व्याख्या करना जहां आप कार्रवाई3 तब तक नहीं कर सकते जब तक आप कार्रवाई नहीं कर लेते2)।

जैसा कि यह पता चला है, एकत्रीकरण ढांचे का उपयोग उन घटनाओं के अनुक्रमों के लिए भी किया जा सकता है जहां आदेश पूरी तरह से मनमाना है लेकिन आप अभी भी जानना चाहते हैं कि किसी बिंदु पर कितने लोगों ने अनुक्रम क्रिया1, क्रिया2, क्रिया3 किया था।

मूल उत्तर पर करने के लिए मुख्य समायोजन बीच में एक अतिरिक्त दो-चरण चरण जोड़ना है। यह कदम व्यक्ति द्वारा एकत्र किए गए दस्तावेज़ को फिर से समूहित करने के लिए खोल देता है ताकि दूसरी क्रिया की पहली घटना का पता लगाया जा सके जो बाद आती है पहली क्रिया की पहली घटना।

एक बार जब हमारे पास अंतिम तुलना क्रिया 1 के लिए हो जाती है, उसके बाद क्रिया 2 की सबसे प्रारंभिक घटना होती है और इसकी तुलना क्रिया 3 की नवीनतम घटना से होती है।

इसे संभवतः घटनाओं की मनमानी संख्या को संभालने के लिए सामान्यीकृत किया जा सकता है, लेकिन पिछले दो से प्रत्येक अतिरिक्त घटना एकत्रीकरण में दो और चरण जोड़ देगी।

यहाँ मेरा राइट-अप है पाइपलाइन का संशोधन आप जिस उत्तर की तलाश कर रहे हैं उसे प्राप्त करने के लिए।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. PHP ड्राइवर का उपयोग करके अतीत की तारीख से MongoDB ObjectID बनाएं

  2. उल्का चल रहा है, जबकि मैं किसी अन्य क्लाइंट से उल्का के मोंगोडीबी तक कैसे पहुंचूं?

  3. स्टोर एनम MongoDB

  4. mongodb:किसी स्तंभ का उच्चतम संख्यात्मक मान ज्ञात करना

  5. देशी पाइमोंगो उपयोग की तुलना में बड़े दस्तावेज़ों पर मोंगोइंजिन बहुत धीमा है