2015-10-20 4 views
-1

Как создать этот запрос с помощью Neo4jClient.Neo4j Client And Not Query

MATCH (keanu:Person)-[:KNOWS*2]->(fof) 
WHERE keanu.name = "Keanu Reeves" 
AND NOT((keanu)-[:KNOWS]-(fof)) 
RETURN DISTINCT fof.name; 
+0

Что вы пробовали? Документы на странице https://github.com/Readify/Neo4jClient/wiki/cypher должны предоставить вам всю необходимую информацию. –

+0

Я проверил это, но я не понимаю, как применить предложение «И не» в Neo4jClient. – Mohit

+0

Поблагодарите Stefan за ваш ответ. – Mohit

ответ

0

Предполагая, что у вас есть класс, как:

public class Person 
{ 
    [JsonProperty("name")] 
    public string Name { get; set; } 
} 

Ваш запрос будет выглядеть следующим образом:

client.Cypher 
    .Match("(keanu:Person)-[:KNOWS*2]->(fof)") 
    .Where((Person keanu) => keanu.Name == "Keanu Reeves") 
    .AndWhere("NOT ((keanu-[:KNOWS]-(fof)))") 
    .ReturnDistinct(fof => fof.As<Person>().Name); 

Я отвечаю в основном, как я думаю, что документы действительно не хватает немного вокруг используя NOT, но Стефан прав - документы содержат большую часть необходимой информации - и вам нужно показать, что вы пробовали, иначе мы не уверены в том, с каким бит вы боретесь.

+0

Спасибо, Крис, он работает, я просто начал изучать Neo4j и клиентскую библиотеку на прошлой неделе, я пытался попробовать образец запроса на Neo4j с Neo4jClient и застрял на нем t. – Mohit