![精通Neo4j](https://wfqqreader-1252317822.image.myqcloud.com/cover/113/47216113/b_47216113.jpg)
上QQ阅读APP看书,第一时间看更新
3.3.9 SET语句
SET语句用于更新节点的标签以及节点和关系的属性。SET可以使用map中的参数来设置属性。
提示:设置节点的标签是幂等性操作,即如果试图设置一个已经存在的标签到节点上,则什么也不会发生。查询统计会自己判断是否需要处理。
SET图例如图3-12所示。
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P175_90960.jpg?sign=1738851086-joBIxDjigk64HIgQYksEe6HRcC5wWmP3-0-4661abe97572cce7df496b291507695f)
图3-12 SET图例
3.3.9.1 设置属性
可以使用SET设置节点或者关系的属性。
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P175_102704.jpg?sign=1738851086-EBtFAnjZPgqDIq5fi1H7HrtO7AYk2AUm-0-a1a8001ffe0b04e3b14dc410c6016c5c)
返回最新修改过的节点。
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P175_101802.jpg?sign=1738851086-K6sWiAf1LKBQ9Od50umXkwmEpqUNRiKi-0-3ea5786bb40f95bbec67fa2f466c73da)
3.3.9.2 删除属性
通常使用REMOVE来删除一个属性,但有时候也可以随手使用SET。如果属性设置为null,将删除该属性。如下所示。
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P176_102705.jpg?sign=1738851086-jIzzjqmQapUT2roRIkGGGhkqqxGDE0Ct-0-9f24c1b42ef2c635ff5374592529b4f7)
设置name属性为空之后,name属性则被删除了。
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P176_101805.jpg?sign=1738851086-0ZZpAId57icoVb032QOfmwSyEqg2nAou-0-2f9ac7459205a8a2cdbce41843cf44b5)
3.3.9.3 在节点和关系间复制属性
可以使用SET复制一个图元素的所有属性到另外一个图元素。记住,这样做会删除目标元素的所有其他属性。
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P176_102706.jpg?sign=1738851086-lY9vyFQN7rv3FwCGhJQmxAMx9TBpvKzW-0-ada4d2395442dc7692993fdc07b16e78)
Andres节点的所有属性将被Peter节点的属性替换了。
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P176_101808.jpg?sign=1738851086-w0N9YXPzwft5R6RdcIOhl4IWmjGji660-0-1d7aaf8fe2e2c54b3f22d637dc64b1c6)
3.3.9.4 从map中添加属性
当用map来设置属性时,可以使用+=形式的SET,用于只添加属性,而不删除图元素中已存在的属性。
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P176_102707.jpg?sign=1738851086-Od2ahrdgynrUtHpFarnEAkR5Xhoz0QJM-0-d2ef948010a8e34a9ae05445735b6ad4)
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P176_101811.jpg?sign=1738851086-5695AOOE09oyBkgSAOZy2woUwKR2qzam-0-1551ddca56cca2228ac8d083b5abcd07)
3.3.9.5 使用参数设置属性
可以使用参数来给属性赋值。
参数:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P177_102708.jpg?sign=1738851086-x84Dg3dgmwmuSx8sSmJojkan9zNmU7c0-0-1e860ea7d6b90f497de3e805f907c5c8)
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P177_102709.jpg?sign=1738851086-mcN7tqD2EQFnkowU6r4WBOeM9OjsJRXp-0-ce4b51995f1b8a359b721affa6ec1769)
Andres节点新增一个surname属性。
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P177_101814.jpg?sign=1738851086-P1UglTA0rJLzC7BYXC8cHvEiBDPfzbPE-0-b2e808d54f9baefcc4cced2b7d635d68)
3.3.9.6 使用一个参数设置所有属性
使用参数提供的属性集合来设置节点的属性时,该节点已存在的所有属性将被替换掉。
参数:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P177_102710.jpg?sign=1738851086-E3dfoYNktOUe5PsbLXBgHXB0qxwwVzus-0-2b1d1d3b0d21e4425f68300bc3c31451)
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P177_102711.jpg?sign=1738851086-lhF4p7M8VMMgdPrLEARV0TwN6EfIXB74-0-89a4ed3c6cb894b9e83ca3eb637aa832)
Andres节点的所有属性都被替换为props参数中的属性了。
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P177_101817.jpg?sign=1738851086-f1eKPabfz3Dk7DDJ6tzCzKRpF0Oj8Y3p-0-5617af90da952d23b21f79e6415b3c0c)
3.3.9.7 使用一个SET语句设置多个属性
如果想一次设置多个属性,则使用逗号分开即可。
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P178_102712.jpg?sign=1738851086-QxmFHcn6EAGBU9ITt08vEKhOrTcjiu5w-0-98d4254fa575e072270f64200c38725b)
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P178_101820.jpg?sign=1738851086-9bMZmVwZTrDpFbyf55KRKRzrz9xTreDj-0-49c271d83d6ee9f088574f1399114e65)
3.3.9.8 设置节点的标签
用SET可给节点设置标签。
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P178_102713.jpg?sign=1738851086-aarUrz2jdpt6E2BFjrrprDLBbfeyE92f-0-f614c4a8c5a63f81eef10f211f1b6e36)
查询将返回新增了标签的节点。
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P178_101823.jpg?sign=1738851086-usdrzbQHYJp9G1LhLm3GyY3RsuKSwpCV-0-7659270f71df3faa44ad0880181afa81)
3.3.9.9 给一个节点设置多个标签
使用SET给一个节点设置多个标签时,不同的标签之间用冒号分隔。
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P178_102714.jpg?sign=1738851086-Vgj9PiBk6mq9TWYAxurLqcrmxhNTDsF6-0-e2fbdadf26cf31039c1f512fefded5fd)
查询将返回新增多个标签的节点。
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P178_101826.jpg?sign=1738851086-U4WqnpNLLom519k4bYrMfaKFc7szJXjR-0-55c9bde3028d23cc190d1a8b8dbc7d4e)