Neo4j COL语法之MERGE/NULL/属性ID

本文深入解析Neo4j数据库中的CQL Merge命令,对比Create与Merge的区别,阐述Merge如何避免重复数据并自动合并相同记录,同时介绍Neo4j中处理空值及使用IN运算符的方法。
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
为了创建 Neo4j 的标准目录结构,建议包括以下目录:`data`、`logs`、`conf`、`import` 和 `plugins`。这些目录分别用于存储数据库文件、日志文件、配置文件、导入数据以及插件。可以通过手动创建这些目录并设置适当的权限来完成。 下面是一个创建 Neo4j 所需目录结构的示例脚本: ```bash # 创建主目录 mkdir -p neo4j-community # 进入主目录 cd neo4j-community # 创建所需的子目录 mkdir -p data logs conf import plugins # 查看创建的目录结构 ls -la ``` 此脚本创建了一个名为 `neo4j-community` 的主目录,并在其中创建了 `data`、`logs`、`conf`、`import` 和 `plugins` 子目录。`-p` 参数确保即使父目录不存在也会被创建,并且不会报错如果目录已经存在。 ### 权限设置 确保 Neo4j 服务有权限访问这些目录。通常情况下,需要将这些目录的所有权分配给运行 Neo4j 服务的用户。例如,在 Linux 系统上,可以使用以下命令: ```bash # 假设 Neo4j 服务由 neo4j 用户运行 chown -R neo4j:neo4j neo4j-community ``` ### 配置文件 配置文件通常位于 `conf` 目录中。在 Neo4j 社区版中,主要的配置文件是 `neo4j.conf`。可以在此文件中设置数据库的各种参数,例如启用 GDS 插件: ```properties # 启用 GDS 插件 dbms.security.procedures.unrestricted=gds.* dbms.security.procedures.allowlist=gds.* ``` ### 数据目录 `data` 目录用于存储 Neo4j 数据库的核心文件,包括图数据和索引等。默认情况下,Neo4j 会将数据库文件存储在 `data/databases` 目录下。 ### 日志目录 `logs` 目录用于存储 Neo4j 的日志文件,包括启动日志、运行日志和错误日志等。这些日志文件对于调试和监控 Neo4j 服务非常有用。 ### 导入目录 `import` 目录用于存放通过 `neo4j-admin import` 命令导入的数据文件。这个命令行工具允许用户从 CSV 文件中批量导入数据到 Neo4j 数据库中 [^4]。 ### 插件目录 `plugins` 目录用于存放 Neo4j 插件,如 APOC(Awesome Procedures On Cypher)和 Graph Data Science(GDS)库等。这些插件可以扩展 Neo4j 的功能,提供更多的图算法和操作支持 [^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值