4

ノード プロパティを json の生の文字列として持ち、それを cypher でフィルタリングすることは可能ですか? 定義済みのプロパティとメタデータ (json の生の文字列) を持つノードがあります。それらのメタデータ プロパティを選択またはフィルタリングしたいと思います。これは次のようなものです:

START movie=node:TYPE_INDEX(Type = 'MOVIE') // Start with the reference
MATCH movie-[t:TAG]->tag 
WHERE collect(movie.Metadata).RatingPress > 3
RETURN distinct movie.Label

そして、メタデータは次のようなものです:

{"RatingPress" : "0","RatingSpectator" : 3"}

次のようにプロパティを呼び出すために、collect 関数を使用することを期待していました。

collect(movie.Metadata).RatingPress

でも、もちろん失敗…。

これは、ノード プロパティからの json 文字列を cypher にバインドする方法ですか?

ご協力いただきありがとうございます

4

2 に答える 2

4

それはプロパティの原則に反しています。JSON メタデータのプロパティをノードで直接設定しないのはなぜですか?

しかし、あなたの質問に答えるには:

いいえ、cypher には JSON に関する知識がありません。

于 2013-01-13T16:21:47.903 に答える
4

ノード全体を JSON blob として扱います。Neo4j は階層プロパティをサポートしていないため、保存時に JSON を区切られたプロパティ名にフラット化し、読み取り時にフラット化を解除します。次に、(たとえば) プロパティ名「foo.bar.baz」に対して Cypher クエリを作成できます。単一の逆引用符を使用してクエリを引用する必要があるため、クエリは少し奇妙に見える傾向がありますが、機能します。

于 2013-01-15T17:52:16.107 に答える