Neo4j:查找曾担任并执导任何电影的人

时间:2019-06-07 15:34:08

标签: neo4j cypher match movie

我想向所有表演和导演电影的人展示。该人是否执导电影但不参与电影活动并不重要。只要节点上存在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?

1 个答案:

答案 0 :(得分:0)

您可以首先在具有所需关系的人员上进行匹配(这将是学位检查),然后立即使用两个关系在模式上进行匹配(否则将成为所讨论关系的OR匹配):< / p>

MATCH (p:Person)
WHERE (p)-[:ACTED_IN]->() AND (p)-[:DIRECTED->()
MATCH path = (p)-[:ACTED_IN | DIRECTED]->(m:Movie)
RETURN path