根据NEO4J中是否存在关系,如何在返回节点上添加属性
在neo4j中,我有两个节点标签。用户和组。我希望获得所有组,并希望在返回时在组中添加属性(如果该组与我选择的用户有关系) 比如说,根据NEO4J中是否存在关系,如何在返回节点上添加属性,neo4j,Neo4j,在neo4j中,我有两个节点标签。用户和组。我希望获得所有组,并希望在返回时在组中添加属性(如果该组与我选择的用户有关系) 比如说, MATCH (u:User) WHERE ID(u) = 81 WITH u MATCH (g:Groups) WITH g OPTIONAL MATCH (u)-[c:CREATED]-(g) return g,ID(c) 上述查询的输出为 g name vishal image ca1f4ed2658a1855cebe21c006291e78.jp
MATCH (u:User)
WHERE ID(u) = 81
WITH u
MATCH (g:Groups)
WITH g
OPTIONAL MATCH (u)-[c:CREATED]-(g)
return g,ID(c)
上述查询的输出为
g
name vishal
image ca1f4ed2658a1855cebe21c006291e78.jpg
description vishal
ID(c)
339
如果关系存在为g.create=true或g.create=false,我想在g中添加属性。我不想在数据库中设置此属性。我只想将其与其他属性一起返回。我怎么做呢?这对你有用吗
MATCH (u:User), (g:Groups)
WHERE ID(u) = 81
OPTIONAL MATCH (u)-[c:CREATED]-(g)
return {group: g, created: NOT(c IS NULL)} AS result, ID(c);
结果
对象包含一个组
节点和一个单独的创建的
布尔值。可以更短您不需要对组进行中间匹配,而是将标签拉到可选匹配中。@MichaelHunger实际上,我已经更新了我的答案以合并2个匹配
语句,这更符合原始查询。我们希望查看所有组
节点,否则创建的将始终为true
。您的答案是正确的,但我在从结果中读取组对象时遇到问题。所以,在不返回单个对象的情况下,我将其更新为单独返回,然后将其分配到组对象中。