2017-12-18 25 views
2

にサイファークエリ結果からノードを削除するI次CYPHERのコードを持っている:のNeo4j

MATCH (n) 
WHERE toLower(n.name) STARTS WITH toLower('ja') 
RETURN n 

この大文字と小文字を区別しないクエリは、その名前がストリング「JA」で始まるすべてのノードを返します。例えば、私がこのデータベースをdbで実行すると、["Javier"、 "Jacinto"、 "Jasper"、 "Jacob"]が返されます。

このリストで不要なノードも削除する必要があります。 ["Jacinto"、 "Jacob"]

のように、["Jasper、Javier"]を含む配列が返されてはならないことを示すデータアクセス層に送られます。

どうすればいいですか?

答えて

2

項目はあなたが言うことができ除外されるべきクエリ作成する前に、あなたが知っている場合:あなたはまた、パラメータとしてそのリストを渡すことができ

MATCH (n) 
WHERE toLower(n.name) STARTS WITH toLower('ja') 
AND NOT (toLower(n.name) IN ['jasper', 'javier']) 
RETURN n 
+0

を。 –

+1

Btw。最高のパフォーマンスを得るには、小文字バリアントをプロパティに格納してインデックスを作成します。次に、STARTS WITHとINの両方の索引サポートを取得します。 –

+0

答えに確実に追加する必要があります。 –