Cypher查询逻辑运算符

时间:2013-05-08 01:55:04

标签: neo4j cypher

作为我之前question的后续内容,我想知道在执行索引查询时如何使用逻辑运算符AND,OR和NOT。

使用相同的图书俱乐部数据库场景,Cypher的查询结果如何:

  1. 找到所有读过的读者(小说 AND 非小说)参考书?
  2. 找到所有读过的读者(小说 OR 非小说) AND NOT 参考书?
  3. 我非常确定这两个例子应该提供足够的资料来涵盖任何其他情况。

    编辑:我创建了一个Neo4j Console场景来证明这一点。

1 个答案:

答案 0 :(得分:0)

对于您的第一个用例,您可以尝试一下。第二种可以在类似的线上完成 -

start b1=node:MyBookIndex('Genre:Fiction'), 
      b2=node:MyBookIndex('Genre:Non-Fiction'),
      b3=node:MyBookIndex('Genre:Reference')
match b1-[a?:HasRead]-r,
      b2-[b?:HasRead]-r,
      b3-[c?:HasRead]-r
where (a <> null and b <> null) or (c <> null)
return r.ReaderName

(注:未经测试)