MERGE
Neo4j使用CQL MERGE命令 -
- 创建节点,关系和属性
- 为从数据库检索数据
- MERGE命令是CREATE命令和MATCH命令的组合。
MERGE = CREATE + MATCH
tips:merge与create的区别是
create可以创建重复的数据而merge创建重复的数据会自动去掉重,数据库只会显示一条数据
该创建语句的数据结果会在数据库里显示三条一样的信息
create (cc:CreditCard{id:"126",name:"abg",number:"5551",cvv:121})
create (cc:CreditCard{id:"126",name:"abg",number:"5551",cvv:121})
create (cc:CreditCard{id:"126",name:"abg",number:"5551",cvv:121})
该创建语句的数据结果会在数据库里显示一条信息,自动合并重复的数据
merge (cc:CreditCard{id:"126",name:"abg",number:"5551",cvv:121})
merge (cc:CreditCard{id:"126",name:"abg",number:"5551",cvv:121})
merge (cc:CreditCard{id:"126",name:"abg",number:"5551",cvv:121})
NULL
- Neo4j CQL将空值视为对节点或关系的属性的缺失值或未定义值。
- 当我们创建一个具有现有节点标签名称但未指定其属性值的节点时,它将创建一个具有NULL属性值的新节点。
在该节点下创建了3条数据 分别是
name age genner
wang 18 man
yu 18 women
null null null
create (e:Empolyee{name:"wang",age:18,genner:"man"})
create (e:Empolyee{name:"yu",age:18,genner:"women"})
create (e:Empolyee)
查询该节点,过滤null值
match (e:empolyee)
where e.name is not null
return e
IN
- 与SQL一样,Neo4j CQL提供了一个IN运算符,以便为CQL命令提供值的集合。
语法
match (e:Employee)
where e.name in ["wang","li"] # 同sql语法一样 in关键字 【】里面是集合
return e.name,e.age
属性ID
- 在Neo4j中,“Id”是节点和关系的默认内部属性。
这意味着,当我们创建一个新的节点或关系时,Neo4j数据库服务器将为内部使用分配一个数字。 它会自动递增。 - 节点的Id属性的最大值约为35亿。
- Id的最大值关系的属性的大约35亿。
CREATE (tweet:Tweet{message:"Hello"}) #内部id默认为0
CREATE (tweet:Tweet{message:"Hello"}) #内部id增加1