密码条件检查(neo4j)
Condition checking in cypher (neo4j)
我运行下面的代码。如果它与我的“u”节点存在关系,我想从 USER_PHONE 节点获取“phone”属性。但我无法分配变量来获取它。
如果我将第一行固定为:(phone)<--(u:USER)-[:friend]-(p:USER)-[i:interested_in]->(p0:INTEREST{name:'Tiếng Anh'})
。
然后对案例中满足条件if((u)-->(:USER_PHONE)
)的节点重复两次return结果。有人可以帮助我吗?
match (u:USER)-[:friend]-(p:USER)-[i:interested_in]->(p0:INTEREST{name:'Tiếng Anh'})
return id(u), u.FB_ID, sum(toInteger(i.strength)*p.ai_pagerank2) as CII,
CASE u
WHEN (u)-->(phone:USER_PHONE) THEN phone.phone
ELSE NULL
END as num_phone order by num_phone ASC limit 100
这是我得到的错误
PatternExpressions are not allowed to introduce new variables: 'phone'. (line 4, column 15 (offset: 183))
" WHEN (u)-->(phone:USER_PHONE) THEN phone.phone"
this is the error i got
您可以进行“可选匹配”。这是关于它的文档:
https://neo4j.com/docs/cypher-manual/current/clauses/optional-match/
match (u:USER)-[:friend]-(p:USER)-[i:interested_in]->(p0:INTEREST{name:'Tiếng Anh'})
with u, i, p
optional match (u)-->(userPhone:USER_PHONE)
return id(u), u.FB_ID, sum(toInteger(i.strength)*p.ai_pagerank2) as CII,
userPhone.phone as num_phone order by num_phone ASC limit 100
您不需要检查 phone 是否为空,因为如果 phone 号码不存在,它将 return 为空。
我运行下面的代码。如果它与我的“u”节点存在关系,我想从 USER_PHONE 节点获取“phone”属性。但我无法分配变量来获取它。
如果我将第一行固定为:(phone)<--(u:USER)-[:friend]-(p:USER)-[i:interested_in]->(p0:INTEREST{name:'Tiếng Anh'})
。
然后对案例中满足条件if((u)-->(:USER_PHONE)
)的节点重复两次return结果。有人可以帮助我吗?
match (u:USER)-[:friend]-(p:USER)-[i:interested_in]->(p0:INTEREST{name:'Tiếng Anh'})
return id(u), u.FB_ID, sum(toInteger(i.strength)*p.ai_pagerank2) as CII,
CASE u
WHEN (u)-->(phone:USER_PHONE) THEN phone.phone
ELSE NULL
END as num_phone order by num_phone ASC limit 100
这是我得到的错误
PatternExpressions are not allowed to introduce new variables: 'phone'. (line 4, column 15 (offset: 183))
" WHEN (u)-->(phone:USER_PHONE) THEN phone.phone"
this is the error i got
您可以进行“可选匹配”。这是关于它的文档: https://neo4j.com/docs/cypher-manual/current/clauses/optional-match/
match (u:USER)-[:friend]-(p:USER)-[i:interested_in]->(p0:INTEREST{name:'Tiếng Anh'})
with u, i, p
optional match (u)-->(userPhone:USER_PHONE)
return id(u), u.FB_ID, sum(toInteger(i.strength)*p.ai_pagerank2) as CII,
userPhone.phone as num_phone order by num_phone ASC limit 100
您不需要检查 phone 是否为空,因为如果 phone 号码不存在,它将 return 为空。