Cypher查询:如何显示所有关系到一个特定的类别
问题描述:
我正在研究一个应用程序,它是书店的后端。在neo4j应用程序中,我想编写一个查询,它会显示与所有相关书籍有关的一个类别。就像我有幻想一样,我会看到所有有幻想类的书。我试图操纵这个 MATCH p=()-[r:HAS_CATEGORY]->() RETURN p LIMIT 25
但我没有看到我需要的结果。我也想了解,例如,如果我想看到更多的类别和书相关。我正在使用最后一个Neo4j。Cypher查询:如何显示所有关系到一个特定的类别
答
如果我理解正确的东西,你是从一本书开始,并希望看到同一类别的所有书籍?
喜欢的东西:
MATCH p=(b:Book {id: "xxx"})-[:HAS_CATEGORY]->(c:Category)<-[:HAS_CATEGORY]-(o:Book) WHERE o <> b
RETURN p
希望这有助于。
问候, 汤姆
答
如果你的数据模型看起来是这样的:
(:Book)-[:HAS_CATEGORY]->(:Category {name: 'name-of-category'})
那么这里是一个暗号查询来获取所有Book
节点的“科幻”`类别:
MATCH (b:Book)-[:HAS_CATEGORY]->(:Category {name: 'SciFi'})
RETURN b;
这不会给我任何结果,我想我对GraphDB做了一些错误。在关系部分下,我只看到2个,但没有看到has_category。但是我已经有了一个类别的书。那么如何添加一个类别? – Jakub
我没有任何结果使用类别Horror编写您的查询,因为它在我的数据库中。我写了这个'MATCH p =(:Book) - [r:HAS_CATEGORY] - >(:Category {name:'Horror'})RETURN p LIMIT 25' 但是写这个MATCH p =() - [r:HAS_CATEGORY ] - >()返回p'显示所有类别和指向该类别的书籍。我写错了只看到与所有相关书籍的一个类别? – Jakub