2013-10-16 9 views
5

क्यों इस क्वेरी काम (यद्यपि डुप्लीकेट पंक्तियों के साथ):Neo4j साइफर क्वेरी: "अज्ञात पहचानकर्ता" जब रिटर्न DISTINCT

START user=node(1197) 
MATCH (user)-[:WROTE_REVIEW]->()-[:EVALUATES]->(post) 
RETURN post.Id, post.Image, post.Description 
ORDER BY post.CreationTime DESC; 

और यह एक नहीं है (यह त्रुटि Unknown identifier 'post' रिटर्न) करता है:

START user=node(1197) 
MATCH (user)-[:WROTE_REVIEW]->()-[:EVALUATES]->(post) 
RETURN DISTINCT post.Id, post.Image, post.Description 
ORDER BY post.CreationTime DESC; 

केवल अंतर DISTINCT कीवर्ड है।

मुझे WITH का उपयोग करके एक समाधान मिला लेकिन मुझे ऐसा लगता है कि मुझे ऐसा नहीं करना चाहिए।

मैं Neo4j 2.0.0-M05 का उपयोग कर रहा हूं। कोई विचार?

धन्यवाद!

उत्तर

5

यह कानूनी है।

DISTINCT DISTINCT खंड में उल्लिखित गुणों द्वारा आदेश देने की संभावना को हटा देता है, साइन इन हो सकता है (उदाहरण के लिए यदि पोस्ट के साथ 3 रिकॉर्ड हैं। क्रिएशनटाइम एक पोस्ट में लम्बा हुआ है। DISTINCT के साथ आईडी बाल्टी, जिसे किसी को चाहिए द्वारा आदेश दिया जा सकता है?)। एक काम कर क्वेरी प्राप्त करने के लिए, विशिष्ट तरह में post.CreationTime में शामिल हैं:

START user=node(1197) 
MATCH (user)-[:WROTE_REVIEW]->()-[:EVALUATES]->(post) 
RETURN DISTINCT post.Id, post.Image, post.Description, post.CreationTime 
ORDER BY post.CreationTime DESC; 

यह हालांकि स्पष्ट नहीं है, इसलिए मैं https://github.com/neo4j/neo4j/issues/1322 उठाया यह दस्तावेज़ों में बनाने के लिए - यह उनका कहना है के लिए धन्यवाद!

+0

समझ में आता है। धन्यवाद! –

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