Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j 密码查询没有得到结果_Neo4j_Cypher - Fatal编程技术网

Neo4j 密码查询没有得到结果

Neo4j 密码查询没有得到结果,neo4j,cypher,Neo4j,Cypher,我对密码有疑问,我不知道怎么执行 找一份没有人喜欢的书的清单 我编写了以下查询 MATCH (b1:Book),(R:Reader) WITH R,b1 OPTIONAL MATCH (b1)--(L:LIKES)--(R) WHERE L IS NULL RETURN b1.title 我得到了一些结果,但我认为这是错误的 当我执行下面的查询时,我可以在图中看到关系 匹配(b1:书),(R:读卡器) 用R,b1 可选匹配(b1)--(L:喜欢)--(R) 其中L为空 返回b1,R 2)

我对密码有疑问,我不知道怎么执行

找一份没有人喜欢的书的清单

我编写了以下查询

MATCH (b1:Book),(R:Reader)
WITH R,b1
OPTIONAL MATCH (b1)--(L:LIKES)--(R)
WHERE L IS NULL
RETURN b1.title

我得到了一些结果,但我认为这是错误的

当我执行下面的查询时,我可以在图中看到关系

匹配(b1:书),(R:读卡器) 用R,b1 可选匹配(b1)--(L:喜欢)--(R) 其中L为空 返回b1,R

2) 找到所有没有共同喜欢的书的人


我没能解决这个问题。

如果你只是在找没人喜欢的书,那么你根本不需要看人,只需要看书。下面是一个查询,用于返回无人喜欢的书籍列表

MATCH (b:Book) 
WHERE NOT (b)<--(:LIKES)
RETURN b
  • 比赛(b:书) 哪里不((:读者)-[:喜欢]->(b:书)) 返回b

  • 匹配(R1:读卡器),(R2:读卡器) 用R1,R2 可选匹配(R1)-(b:书本)-(R2) 其中b为空 返回R1.name,R2.name

  • 你实际上有两个问题。这些答案可能适用于您:

    (1) 查找所有
    读者不喜欢的
    书籍

    MATCH (b:Book)
    WHERE NOT EXISTS((b)<-[:LIKES]-(:Reader))
    RETURN b;
    

    使用
    可选匹配
    ,因此也将考虑不喜欢书籍的
    阅读器
    s。APOC函数用于获取两个列表的交集。

    问题是找到所有没有共同喜欢的书的人。答案不应该包含两个人。我是说两个人
    MATCH (b:Book)
    WHERE NOT EXISTS((b)<-[:LIKES]-(:Reader))
    RETURN b;
    
    MATCH (r:Reader)
    OPTIONAL MATCH (r)-[:LIKES]->(b:Book)
    WITH r, COLLECT(b) AS books
    WITH COLLECT({r: r, books: books}) AS data
    RETURN REDUCE(s = [], i1 IN RANGE(0, SIZE(data)-2) |
      s + REDUCE(t = [], i2 IN RANGE(i1+1, SIZE(data)-1) |
        CASE WHEN SIZE(apoc.coll.intersection(data[i1].books, data[i2].books)) = 0
          THEN t + [data[i1], data[i2]]
          ELSE t END
      )
    ) AS dissimilar_pairs