本文我们再少下Cypher查询语言中的set关键字。我们可以把它看作是sql中的update相关语句。
set关键字主要是在查询语句中使用,他用来修改节点和关系的属性值,或者为节点和关系增加属性字段。下面我们来演示一下。这里的案例我们还是使用前面的演示数据。
1、修改节点的某个属性值
这里假设我们现在修改下张三这个节点的age值,把他的年龄修改为16岁,对应的查询语句如下:
match (a{name:'张三'}) set a.age=16 return a
2、为节点新增属性
接着我们再展示下为张三这个节点添加一个sex的属性,对应的查询语句如下:
match (a{name: '张三'}) set a.sex='F' return a
3、添加关系属性
在node4j中,所有的关系也可以和实体一样,有很多的属性,像我们使用[r:兄弟]这种建立的关系是没有属性了,示例如下:
那我们就给关系添加一下属性,比如给兄弟这个关系添加一个nos:001,示例查询语句如下:
MATCH p=()-[r:兄弟]->() SET r.nos='001' RETURN p
运行之后就可以看到添加了nos属性了:
当然如果是修改属性的话,和上面是一样的查询语句,假如我们把兄弟关系的nos修改002,那么示例如下:
MATCH p=()-[r:兄弟]->() SET r.nos='002' RETURN p
当然如果我们设置多个值的话,直接使用逗号进行分隔即可,示例如下:
MATCH p=()-[r:兄弟]->() SET r.nos='002',r.title='text' RETURN p
以上就是关于SET关键字的用法。
备注:
1、1、有人可能会想我想把关系名称兄弟,修改为姐妹怎么办?这里的话就没法使用set了,只能是先查询出来兄弟的关系,然后把他删除掉,再建立新的关系,起名为姐妹。示例如下:
//删除老关系,建立新关系 MATCH (a)-[r:兄弟]->(b) delete r create (a)-[nr:姐妹]->(b) //查询新的结果 match (n) return n
2、上面创建新关系的时候,上面的关系r这个变量不能重复,新的关系需要重新起个新的变量名称。
还没有评论,来说两句吧...