在Neo4J中,如何检索节点,以及有关它们是否连接到特定节点的其他信息

时间:2015-01-29 16:41:43

标签: neo4j neo4jclient

我有包含产品信息(P)的节点。每当用户喜欢该产品时,创建关系[L]连接用户(U) - > [L] - > [P]

现在我需要根据特定条件检索一组Product节点,但还需要返回其他信息,表明特定用户是否喜欢它们。

因此,如果产品结构类似

  

{产品名称,价格}

如果让我们说,用户X喜欢有问题的3种产品中的1种,我需要的结果集可能看起来像这样

  

[{Product1,29.00,true},{Product2,39.00,false},{Product3,25.00,false}]

这里指的是用户喜欢Product1并且不喜欢Product2的事实。

我不知道如何编写这样的查询,其中包含返回节点是否被喜欢的附加信息

1 个答案:

答案 0 :(得分:3)

我认为这样的事情会满足你的需求。

匹配所有产品。您将希望以某种方式缩小此匹配范围。

可选择匹配每个产品的用户赞。

返回包含名称,价格和类似状态的地图集合。

match (p:Product)
optional match (u:User)-[:LIKES]->p
with {product:p.name, price:p.price, like: case when u is null then false else true end} as Product_Detail
return collect(Product_Detail)