2013-05-08 220 views
0

作爲我之前question的後續,我想知道如何在執行索引查詢時使用邏輯運算符AND,OR和NOT。帶邏輯運算符的Cypher查詢

使用相同的讀書俱樂部的數據庫的情況會是什麼暗號查詢的樣子:

  1. 查找已經閱讀(小說非小說類)OR參考書所有的讀者?
  2. 查找所有讀過的讀者(小說非小說類)而不是參考書?

我敢肯定,這兩個例子應該提供足夠的材料來覆蓋任何其他情況。

編輯:我創建了一個Neo4j Console場景來演示這一點。

回答

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 

(注:未測試)

+0

我得到使用Neo4j的Web管理控制檯的數據瀏覽器選項卡執行查詢下面這並不工作: >無效查詢 >現在不支持此模式。這些模式元素是多個雙重可選路徑的一部分,這是不允許的。 r1,F,r2 – 2013-05-08 17:59:35

+0

請注意,在我以前的評論中提到的''r1,F,r2''是來自使用我的數據的測試。使用@ Gopi回覆中的示例,您會看到'「a,r,b」'。 – 2013-05-08 18:08:11