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