Как мне создать этот запрос, используя Neo4jClient
.
MATCH (keanu:Person)-[:KNOWS*2]->(fof)
WHERE keanu.name = "Keanu Reeves"
AND NOT((keanu)-[:KNOWS]-(fof))
RETURN DISTINCT fof.name;
Как мне создать этот запрос, используя Neo4jClient
.
MATCH (keanu:Person)-[:KNOWS*2]->(fof)
WHERE keanu.name = "Keanu Reeves"
AND NOT((keanu)-[:KNOWS]-(fof))
RETURN DISTINCT fof.name;
Предполагая, что у вас есть класс вроде:
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
, но Стефан прав - документы действительно содержат большую часть необходимой вам информации - и вам нужно показать, что вы пробовали, иначе мы не уверен, с какой частью вы боретесь.