我有包含产品信息(P)的节点。每当用户喜欢该产品时,创建关系[L]连接用户(U) - > [L] - > [P]
现在我需要根据特定条件检索一组Product节点,但还需要返回其他信息,表明特定用户是否喜欢它们。
因此,如果产品结构类似
{产品名称,价格}
如果让我们说,用户X喜欢有问题的3种产品中的1种,我需要的结果集可能看起来像这样
[{Product1,29.00,true},{Product2,39.00,false},{Product3,25.00,false}]
这里指的是用户喜欢Product1并且不喜欢Product2的事实。
我不知道如何编写这样的查询,其中包含返回节点是否被喜欢的附加信息
答案 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)