次のようなデータのタプルを含む「フレーバー」と呼ばれるプロパティを持つノードがあります。
node1.flavors = {"cherry":174,"vanilla":105,"chocolate":60}
node2.flavors = {"cherry":17,"vanilla":10,"chocolate":300}
チョコレートに関連付けられた最大の整数を持つノード (node2) を見つけたいと考えています。これどうやってするの?
正規表現を使用して、チョコレートがフレーバー プロパティにあるものを取得する方法を見つけました。
start n=node(*)
WHERE has(n.flavors) AND n.flavors =~ '.*chocolate.*'
RETURN count(n);
次に、「チョコレート」の後に番号を取得する必要があります: _。
詳細情報: JSON 文字列です。cypher で処理できない場合は、Ruby で処理し、neo4j でデータ モデルをやり直す必要があります。プロパティに indexOf 関数がないため、部分文字列を使用できないと思いますよね?
2.0.0p247 :002 > r = JSON.parse('{"vanilla":161,"chocolate":21,"cherry":18}')
=> {"vanilla"=>161, "chocolate"=>21, "cherry"=>18}
2.0.0p247 :004 > r.class
=> Hash
2.0.0p247 :005 > r.keys
=> ["vanilla", "chocolate", "cherry"]
2.0.0p247 :006 > r.values
=> [161, 21, 18]
2.0.0p247 :007 > r["vanilla"]
=> 161