官术网_书友最值得收藏!

  • 精通Neo4j
  • 龐國明等
  • 775字
  • 2023-07-17 19:01:03

3.2.5 運算符

3.2.5.1 數(shù)學(xué)運算符

數(shù)學(xué)運算符包括+、-、*、/、%和^。

3.2.5.2 比較運算符

比較運算符包括=、<>、<、>、<=、>=、IS NULL和IS NOT NULL。

3.2.5.3 布爾運算符

布爾運算符包括AND、OR、XOR和NOT。

3.2.5.4 字符串運算符

連接字符串的運算符為+,正則表達(dá)式的匹配運算符為=~。

3.2.5.5 列表運算符

列表的連接也可以通過+運算符,可以用IN來檢查列表中是否存在某個元素。

3.2.5.6 屬性運算符

Cypher 2.0版本以后,之前存在的屬性運算符“?”和“!”已經(jīng)被移除了。這個語法不再支持。對于不存在的屬性將返回null。如果真的還需要?運算符的功能,可以使用(NOT(has(<ident>.prop))OR <ident>.prop=<value>)。使用“? ”表達(dá)可選關(guān)系也被移除了,取而代之的是OPTINAL MATCH。

3.2.5.7 值的相等與比較

Cypher支持使用=和<>來比較兩個值的相等/不相等關(guān)系,如3 = 3和"x" <> "xy"。

對于Map來說,只有兩個Map的鍵相同且指向的值也相等的時候它們才相等。對于列表來說,只有它們包含相等值的相同序列的時候才相等,如[3, 4] = [1+2, 8/2]。

不同類型的值在比較相等的時候遵循以下規(guī)則:

● 路徑可看作是一些節(jié)點和關(guān)系的列表,它等于所有包含相同序列節(jié)點和關(guān)系的所有列表。

● 對任何值使用=和<> null都將返回null,包括null = null和null <> null都將返回null。唯一可靠地測試一個值是否為null的方法是使用IS NULL或者IS NOT NULL。

不同類型之間不能相互比較。節(jié)點、關(guān)系和映射之間也不能相互比較。

3.2.5.8 值的排序與比較

比較運算符<=、<(升序)和>=、>(降序)可以用于如下值排序比較:

● 數(shù)字型值的排序比較采用數(shù)字順序。

● java.lang.Double.NaN大于所有值。

● 字符串排序的比較采用字典順序,如"x" < "xy"。

● 布爾值的排序遵循false < true。

● 只要有一個參數(shù)為null,比較結(jié)果都將為null,如null < 3的結(jié)果為null。

● 將其他類型的值相互比較進(jìn)行排序,則會報錯。

3.2.5.9 鏈?zhǔn)奖容^運算

比較運算可以被任意地聯(lián)結(jié)在一起,如x < y <= z等價于x < y AND y <= z。

如果a, b, c, …, y, z是表達(dá)式,op1, op2, …, opN是比較運算符,這時,a op1 b op2 c … y opN z等價于a op1 b and b op2 c and … y opN z。

例如:

等價于:

該查詢將匹配年齡介于21~30的所有節(jié)點。

主站蜘蛛池模板: 永泰县| 钟山县| 松桃| 安岳县| 泊头市| 绥化市| 万年县| 浠水县| 曲松县| 科技| 大安市| 株洲市| 玉树县| 岢岚县| 云和县| 福海县| 怀仁县| 昌吉市| 夹江县| 白玉县| 天长市| 龙江县| 抚顺市| 天峻县| 桃江县| 凌海市| 景泰县| 宣武区| 新源县| 宁化县| 聂拉木县| 离岛区| 建水县| 手机| 葫芦岛市| 六安市| 凤庆县| 依兰县| 潮州市| 方山县| 商丘市|