2016-07-25 13 views
0

neo4jでグラフを作成しました。次のサイファークエリで検索した結果、結果は得られませんでした。neo4j cypherクエリはプロパティでは機能しません

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 

なぜ2番目のクエリは結果を返しますが、最初のクエリは返されません。

+0

これらの種類の問題では、実際のデータとの照会(データの前提を含む)の比較を行うと便利です。一致させようとしているノードのデータをコピー/ペーストできますか? – InverseFalcon

答えて

0

いくつかの健全性チェックを実行する必要があります。これらの状況では、一般的な原因はタイプミス、大文字小文字の不一致などです。あなたがすでにこれらを通過しているように聞こえますが、戻ってそれぞれを検証することに傷つくことはありません。

あなたが言うように、試合のラベルが正しい場合、小文字のキーとスペルが正しい場合は、プロパティ自体の値で何かでなければなりません。

を探すためにいくつかのこと...

  • 正しいスペル+ケース
  • あなたの試合が終わりに文字があるかどうかの検査
  • を失敗させるような価値の余分な空白「1」または小文字の「l」

そして、すべてがまだのNeo4jに再びそれをテストし、正常に見える場合...あなたはあなたのWHERE clauでSTARTS WITHを使用してみたいことがありse。

最後に、をa:ノードを使用して、期待通りのものにしますが、ON CREATEを使用して新しいノードに追加のフラグを設定してください。既存のノードと作成される新しいノードを区別するのに役立つものがあります)。

+0

'pro1'の後に空白があるようです。私はグラフを再構築し、それは動作します。ありがとう! – Bing

関連する問題