2013-04-07 8 views
8

साइफर में एक प्रश्न पूछना कैसा संभव है: "उन सभी लोगों को वापस लौटाएं जो अन्ना का अनुसरण करते हैं जो किसी का अनुसरण नहीं करते हैं"?साइफर क्वेरी में "कोई संबंध नहीं"

निम्नलिखित "r रिक्त है" भाग नहीं लगता है काम करने के लिए (मैं कहाँ शुरू नोड क्वेरी के बाद स्पष्ट कर दिया की आईडी होना) में:

START o=node({id}) 
MATCH (a)-[:follows]->(b)-[r]->(c) 
WHERE a.name="anna" and r is null 
RETURN b 

अभी, "इस प्रकार है" मेरे पास एकमात्र रिश्ता है। लेकिन भी

START o=node({id}) 
MATCH (a)-[:follows]->(b)-[:follows]->(c) 
WHERE a.name="anna" and c is null 
RETURN b* does not work. 

तक काम नहीं करता है मेरा मतलब है: मैं कोई परिणाम नहीं मिलता है, यद्यपि वहाँ कुछ किया जाना चाहिए।

उत्तर

18

यह match एक पैटर्न नहीं होगा यदि यह अस्तित्व में नहीं है। match चीजों को खोजने के लिए है, चीज़ों को खोजने के लिए नहीं। आप where खंड में इस तरह की भविष्यवाणी कर सकते हैं:

START a=node({id}) 
MATCH (a)-[:follows]->(b) 
WHERE not(b-[:follows]->()) 
RETURN b 
संबंधित मुद्दे