2017-02-06 11 views
5

से अधिक एकत्रित कर रहे हैं हम वस्तुओं को इकट्ठा करने के समय साइफर प्रश्नों को थोड़ा दर्द होने और लिखने के लिए पाते हैं। हम अक्सर कुछ इकट्ठा करना चाहते हैं और मूल नोड को त्यागना चाहते हैं। एक उदाहरण के रूप में निम्न देखें:नोड्स को छोड़कर हम

MATCH (p)-[]-(c) WITH p, collect(c) as c RETURN p, c

ऊपर बहुत बुरा नहीं लगती है। समस्या p का स्पष्ट नामकरण है, वह फ़ील्ड जिसे हम रखना चाहते हैं। चूंकि हम एकत्रीकरण के साथ MATCH और OPTIONAL MATCH जोड़ते हैं, यह एक रखरखाव दुःस्वप्न बन जाता है। हम संदर्भित सभी फ़ील्ड को भी बदले बिना MATCH/WITH जोड़े को पुन: व्यवस्थित नहीं कर सकते हैं। जब हम collect करते हैं, तो हम हमेशा मूल नोड को त्यागना चाहते हैं।

WITH में * है जिसका उपयोग किया जा सकता है, लेकिन इसमें उस क्षेत्र को शामिल किया जाएगा जिसे हम एकत्रित कर रहे हैं, और हम मूल्य को प्रतिस्थापित नहीं कर सकते हैं।

MATCH (p)-[]-(c) WITH *, collect(c) as c RETURN p, c

वहाँ स्पष्ट रूप से सब कुछ है कि शामिल किया जाना चाहिए नामकरण के बिना एक WITH बयान में कुछ बाहर करने के लिए कोई तरीका है? कुछ निम्नलिखित की तरह है?

MATCH (p)-[]-(c) WITH *, without(c), collect(c) as cs RETURN p, cs

+0

दिलचस्प मामला। मुझे लगता है कि साइफर सुविधाओं के विस्तार के रूप में विचार करने लायक है। –

उत्तर

0

मैं वहाँ यह करने के लिए एक तरीका है, और कैसे एकत्रित साइफर में काम दिया नहीं लगता कि, मुझे लगता है कि यह कहीं अधिक सिर दर्द की तुलना में यह इलाज होगा कारण होगा।

याद रखें कि समेकन का अर्थ केवल गैर-समेकन कॉलम के संबंध में है जो समूहबद्ध कुंजी बनाते हैं। मुझे खंडों में अमूर्त होने के चर के स्पष्ट समावेशन मिलते हैं, क्योंकि यह आपको क्षेत्र के दायरे में क्या समझता है, इसकी एक नज़र में समझ देता है, जो आपको आपके एकत्रीकरण कॉलम का संदर्भ देता है।

इसके बिना, आप छोटी गाड़ी व्यवहार को जोखिम देते हैं क्योंकि उस क्षेत्र में वेरिएबल्स हो सकते हैं जिन्हें आप बाहर करना भूल गए हैं, जो आपके समेकन के अर्थ और गणना को बदल देगा।

+0

हमारे पास बग हैं क्योंकि हमें स्पष्ट रूप से सबकुछ बता देना होगा जिसमें शामिल होना चाहिए। यह मुख्य रूप से एक सरल संग्रह करते समय 'एकत्रित करें (सी) एएस सीएस' जहां हम 'सी' छोड़ना चाहते हैं लेकिन बाकी सब कुछ रखना चाहते हैं। 'वैकल्पिक मिलान' के अनुक्रम के साथ जो एकत्र करता है, यह बहुत कठिन और त्रुटि-प्रवण है। – simendsjo

संबंधित मुद्दे