作为我上一个问题的后续,我想知道在执行索引查询时如何使用逻辑运算符 AND、OR 和 NOT。
使用相同的读书俱乐部数据库场景,Cypher 查询会是什么样子:
- 查找所有阅读过(小说和非小说)或参考书的读者?
- 查找所有阅读过(小说或非小说)而不是参考书的读者?
我很确定这两个示例应该提供足够的材料来涵盖任何其他情况。
编辑:我创建了一个Neo4j 控制台场景来演示这一点。
对于您的第一个用例,您可以尝试一下。第二个可以在类似的线路上完成 -
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
(注:未测试)