2016-07-25 62 views
0

我用neo4j建立了一個圖。當我用下面的密碼查詢進行搜索時,它沒有得到結果。neo4j密碼查詢不能使用屬性

MATCH (n:node) 
where n.prop='pro1' 
RETURN n 
LIMIT 25 

我敢肯定n.prop='pro1'存在。查詢起作用。

MATCH (n:node) 
where exists(n.prop) 
RETURN n 
LIMIT 25 

爲什麼第二個查詢返回結果,但第一個查詢不是?

+0

在這些類型的問題,是非常有用的做查詢的比較(其中包括您的數據的假設)與實際數據。你能複製/粘貼你試圖匹配的節點的數據嗎? – InverseFalcon

回答

0

您可能需要進行一些健康檢查,在這些情況下,常見的罪魁禍首是拼寫錯誤,病例不匹配或類似情況。聽起來你已經經歷過這些,但回過頭來驗證每一個都沒有什麼壞處。

但如果它是如你所說,你的對手的標籤是正確的,支撐鍵的情況下和拼寫是正確的,那麼它一定是斷的東西與物業本身的價值。

有幾件事情,尋找...

  • 更正拼寫+案例
  • 中值的任何額外的空格會導致你的對手失敗
  • 驗證,如果在年底的性格「一」或小寫字母「l」

,如果一切看起來還是不錯,在Neo4j的再次測試......你可能想嘗試在WHERE clau使用STARTS WITH SE。

作爲最後的手段,嘗試使用具有prop的節點MERGE作爲你所期望的,但用ON CREATE在新節點上設置一些額外的標誌,如果它被創建(就像一個完整性檢查和所以你將有一些東西可以幫助你區分退出的節點和任何可以創建的新節點)。

+0

似乎'pro1'後面有一個空格。我重建圖形,它的工作原理。謝謝! – Bing