Neo4j 如何在集合中逐个提取值,然后立即使用它设置其他属性

Neo4j 如何在集合中逐个提取值,然后立即使用它设置其他属性,neo4j,cypher,database,nosql,Neo4j,Cypher,Database,Nosql,这里,我想从d中提取素食食谱节点,并使用它们逐个计算各自的份量(((a*0.5)/x.Energy_/份),在DietPlan和收集的食谱之间创建新的关系,并在其中添加“amt”。 但这是一个“未绑定模式”错误。我也尝试过使用MERGE,但这不起作用,因为dp_id和Recipe_id是唯一的约束。 请帮忙 您正在绑定一些在查询的其余部分中从未使用过的变量,因此我们可以删除p和j 因为这里只有一个饮食计划,所以在你更复杂的素食早餐比赛之前,你可能想匹配一下 最后,我们这里不需要forEach,因

这里,我想从d中提取素食食谱节点,并使用它们逐个计算各自的份量(((a*0.5)/x.Energy_/份),在DietPlan和收集的食谱之间创建新的关系,并在其中添加“amt”。 但这是一个“未绑定模式”错误。我也尝试过使用MERGE,但这不起作用,因为dp_id和Recipe_id是唯一的约束。
请帮忙

您正在绑定一些在查询的其余部分中从未使用过的变量,因此我们可以删除p和j

因为这里只有一个饮食计划,所以在你更复杂的素食早餐比赛之前,你可能想匹配一下

最后,我们这里不需要forEach,因为在你最后一场比赛后,你会在自己的一排吃每一份素食早餐食谱,所以所需要的只是建立关系

match(n:User {name:"Ramu"}) with (n.bmrx+n.daily_avg_cal) as a

with a

match p= (f:Recipe {time:"Breakfast"})-[:is_diet]->(j:Diet{name:"Vegetarian"}) with collect(f) as d,p,a

with a,p,d foreach(x IN d|create unique (n:DietPlan {dp_id:"DP1"})-[r:contains {amt:(a*0.5)/x.Energy_per_Serving, unit:"No of Servings"}]->(m:Recipe {Recipe_ID:(x.Recipe_ID)}) )
match(n:User {name:"Ramu"}) 
with (n.bmrx+n.daily_avg_cal) as a
match (dietPlan:DietPlan {dp_id:"DP1"})
match (recipe:Recipe {time:"Breakfast"})-[:is_diet]->(:Diet{name:"Vegetarian"})
with a, dietPlan, recipe
create unique (dietPlan)-[:contains {amt:(a*0.5)/x.Energy_per_Serving, unit:"No of Servings"}]->(recipe)