2

gwt で no4j データベースのサイファー クエリを実行しようとしています。

intいくつかのノードの値を property として保存しましたdetail。私がネオクリップを正しく使用している場合、この値が値としてデータベースに保存されていることに気付きましたString

私のクエリには、機能しない次の部分があります。

START ... 
MATCH node-[:SomeTag]->intnode 
WHERE intnode.detail < 10
RETURN ...

そして私は得る:

それを比較する方法がわかりません。左: 15; 右: 10: 比較する方法がわからない: 左: 15; 右: 10

だからうまくいきintnode.detail < 10ません。私もこれを試しました: intnode.detail < STR(10)、ハッシュ値または ascii 値を比較すると思ったので、同じエラーが発生しました。

編集:

データの保存中に を設定できると読みましたが@GraphProperty、gwt でそれを行うにはどうすればよいですか?

つまり、ノードがあり、たとえば次のように書くことができます

Object obj = (Object) 10;
node.setProperty("detail", obj);

obj が int であることを neo4j に伝えるにはどうすればよいですか?

4

2 に答える 2

2

この回答は、編集部分に追加した質問ではなく、最初の質問に主に焦点を当てています。サイファークエリの WHERE 部分の比較で

同様の問題が発生しました。私は次のようなことをしようとしました

MATCH ...
WHERE value > 1

あなたと非常によく似たエラーメッセージを引き起こしました。いくつかのテストの後、一重引用符を追加すると、クエリが機能することがわかりました。これが私の解決策です:

MATCH ...
WHERE value > '1'

(引用符に注意してください)これは二重引用符では機能しないことにも気付きました

これがあなたやこの問題に遭遇した他の人に役立つことを願っています:)

于 2014-01-08T19:03:12.443 に答える
0

intnode.detail の値は string として保存されていると思うので、整数値と比較することはできません。

あなたはこのようにしなければなりません

START ... MATCH node-[:SomeTag]->intnode WHERE intnode.detail < "10" RETURN ...

于 2013-09-18T13:49:45.147 に答える