我想向所有表演和导演电影的人展示。该人是否执导电影但不参与电影活动并不重要。只要节点上存在ACTED_IN和DIRECTED边缘,查询就会显示结果。
我尝试了几次Cypher查询。我认为这表明我打算取得的最接近结果:
#include <iostream>
using namespace std;
int main()
{
String text; //Here, you declare a variable of the type string(text)
cin >> text; //Here, you read the user input, for that variable
if (text == "test") { //here you test if that variable equals "test"
cout << "test2";
}
system("pause");
return 0;
}
现在,问题是,其中一部结果显示了“詹姆斯·马歇尔” ACTED_IN“好男人”,但他还导演了两部不同的电影,分别是“忍者刺客”和“ V字仇杀队”。
我目前的结果只显示“詹姆斯·马歇尔” ACTED_IN“好男人”,而没有显示他导演的另外两部电影。那么,如何改善我的Cypher?
答案 0 :(得分:0)
您可以首先在具有所需关系的人员上进行匹配(这将是学位检查),然后立即使用两个关系在模式上进行匹配(否则将成为所讨论关系的OR匹配):< / p>
MATCH (p:Person)
WHERE (p)-[:ACTED_IN]->() AND (p)-[:DIRECTED->()
MATCH path = (p)-[:ACTED_IN | DIRECTED]->(m:Movie)
RETURN path