2015-09-24 49 views
3

我想檢查一個節點是否存在使用其名稱(而不是它的ID)。 Cypher查詢如下所示:從Neo4j密碼查詢返回布爾值

MATCH (c:Jaguar{name:"JLR 2.5Ltr"})-[:REPRESENTED_BY]->(v) RETURN c IS NOT NULL 

但是,使用neo4j shell/web控制檯,返回的結果是String類型。同樣的失敗在彈簧數據Neo4j的錯誤:

Null return value from advice does not match primitive return type for: public abstract boolean xxx.yyy.repository.SomeRepository.checkIfDatasetExists(java.lang.String) 

曾有人遇到任何解決有關此

回答

1

您應該使用情況檢查,如果您的節點爲空或不是,並返回值您需要:

MATCH (c:Jaguar{name:"JLR 2.5Ltr"})-[:REPRESENTED_BY]->(v) 
RETURN CASE WHEN c IS NULL THEN false ELSE true END as c 

更多信息可以在Neo4j's Documentation

3

被發現Supamiu提供的答案也不會遺憾的是工作,你需要破解本b y返回計數表達式:

MATCH (c:Jaguar{name:"JLR 2.5Ltr"})-[:REPRESENTED_BY]->(v) 
RETURN count(c) > 0 as c