मेरे पास कई स्तरों वाला पेड़ है, जहां पत्ते के नोड्स में संपत्ति "गिनती" हो सकती है। मैं प्रत्येक उप-पेड़ के लिए कुल गणना की गणना करना चाहता हूं, और उन मानों को प्रत्येक उप-पेड़ के रूट नोड में कैश करना चाहता हूं। क्या यह Gremlin में संभव है?Gremlin में उप-पेड़ों के लिए कुल गणना कैसे करें?
उत्तर
आप इसे sideEffect
के साथ कर सकते हैं - यह बहुत सरल है। हम सेटअप के साथ एक सरल पेड़:
gremlin> g.V().filter{it.outE().hasNext()}.sideEffect{
gremlin> c=0;
gremlin> it.as('a').out().sideEffect{leaf -> c+=(leaf.getProperty('count')?:0)}.loop('a'){true}.iterate()
gremlin> it.setProperty('total',c)
gremlin> }
==>v[0]
==>v[1]
gremlin> g.v(0).total
==>5
gremlin> g.v(1).total
==>3
कि क्वेरी इस तरह टूट जाती है:
gremlin> g = new TinkerGraph()
==>tinkergraph[vertices:0 edges:0]
gremlin> v1 = g.addVertex()
==>v[0]
gremlin> v2 = g.addVertex()
==>v[1]
gremlin> v3 = g.addVertex([count:2])
==>v[2]
gremlin> v4 = g.addVertex([count:3])
==>v[3]
gremlin> v1.addEdge('child',v2)
==>e[4][0-child->1]
gremlin> v1.addEdge('child',v3)
==>e[5][0-child->2]
gremli
gremlin> v2.addEdge('child',v4)
==>e[6][1-child->3]
और फिर यहाँ पूर्ण पेड़ के भीतर प्रत्येक सबट्री से अधिक गणना है। सबसे पहले, इस टुकड़े:
g.V().filter{it.outE().hasNext()}
पेड़ है कि एक पत्ती नोड नहीं है के किसी भी भाग हो जाता है (अर्थात कम से कम एक निवर्तमान बढ़त हासिल है एक पत्ता नहीं होने के लिए चाहिए)। दूसरा, हम एक सबट्री से प्रत्येक जड़ पर कार्रवाई करने के sideEffect
का उपयोग करें:
it.as('a').out().sideEffect{leaf -> c+=(leaf.getProperty('count')?:0)}.loop('a'){true}.iterate()
एक चर c
कहा जाता है में एक सबट्री के लिए "गिनती" संपत्ति की राशि के संचय। "गिनती" संपत्ति के बिना शिखर की जांच करने और उन मामलों में शून्य लौटने के लिए एल्विस ऑपरेटर (?:
) के साथ वहां कुछ गड़बड़ी की भलाई है।
it.setProperty('total',c)
>> आप बस subtree के अपने रूट नोड में सी के मान को स्टोर कर सकते हैं << कैसे? – isobretatel
'v1.setProperty ('कुल', सी)' - क्या आपको कुछ और चाहिए? –
हां: पूरे पेड़ के लिए नहीं, _each_ उप-पेड़ के लिए उन मानों की गणना और कैश करें। – isobretatel
- 1. कुल गणना
- 2. की गणना कुल स्विफ्ट
- 3. बूटस्ट्रैप में संदेशों/अलर्ट संकेतक की कुल गणना कैसे करें?
- 4. MySQL में कुल मानों की गणना कैसे करें?
- 5. गणना संचयी कुल
- 6. पांडा कुल गणना अलग
- 7. घंटे की गणना कैसे करें: कुल मिनट से मिनट?
- 8. सूची सूची में सूची आइटमों की कुल संख्या गणना करें
- 9. उपनाम कॉलम पर कुल फ़ंक्शन SUM की गणना कैसे करें?
- 10. Gremlin - Giraph - GraphX? TitanDb
- 11. क्या SQL कुल फ़ंक्शन गणना के लिए कोई मानक है?
- 12. फिल्टर विकल्पों के लिए कुल योग की कुशलतापूर्वक गणना कैसे करें
- 13. परिभाषित पृष्ठ और रिकॉर्ड की कुल गणना के लिए डेटा का चयन कैसे करें?
- 14. तालिका में बीएलओबी कॉलम के कुल डेटा आकार की गणना
- 15. प्रतिशत की गणना कैसे करें?
- 16. कोड अनुबंध, कुल और कस्टम गणना
- 17. कुल
- 18. हो रही कुल रिकॉर्ड के साथ रिकॉर्ड के सबसेट गणना
- 19. क्या ग्राफिकल कुल गणना कर सकता है?
- 20. Django प्रति दिन रिकॉर्ड की कुल गणना
- 21. SQLAlchemy में कुल मूल्य कैसे सम्मिलित करें?
- 22. ऊर्जा गणना में लूप के लिए कैसे खत्म करें?
- 23. टाइटन 1.0.0 से gremlin विंडोज
- 24. दो चयनित कैलेंडर तिथियों के बीच कुल दिनों की गणना कैसे करें
- 25. पावर पिवट मॉडल में कुल प्रतिशत की गणना
- 26. कुल गणना के लिए एसक्यूएल और उस स्थिति में गिनती है जहां स्थिति सही है
- 27. छानने की संख्या और कुल गणना के बिना सबक्वेरी
- 28. कर्मचारी प्रकार के आधार पर कुल वेतन की गणना
- 29. स्कोर की गणना कैसे करें?
- 30. गणनाओं की गणना कैसे प्राप्त करें?
जो दुष्टात्मा 2.x या 3.x के संस्करण: आप पेड़ पार की गणना करने के बाद
c
तुम सिर्फ माध्यम सबट्री के अपने रूट नोड मेंc
का मूल्य स्टोर कर सकते हैं? –Gremlin 2.x बेहतर होगा। – isobretatel