2017-02-16 2 views
0
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)})) 

Так вот, я хочу, чтобы извлечь Растительная узлы рецепт от д, и использовать их по одному, чтобы вычислить соответствующие размеры обслуживания («(a * 0,5) /x.Energy_per_Serving»), создайте новые отношения между DietPlan и собранными рецептами и добавьте там «amt». Но это дает ошибку «Unbound Pattern». Я также пытался использовать MERGE, но это не работает, потому что dp_id и Recipe_ID являются уникальными ограничениями. Пожалуйста, помогите!Как извлечь значения по одному в коллекции, а затем использовать его сразу же установить другие свойства

ответ

0

Вы связываете некоторые переменные, которые никогда не используются в остальной части вашего запроса, поэтому мы можем отказаться от p и j.

Поскольку здесь есть только один план диеты, вы можете захотеть поупражняться в этом до более сложного вегетарианского завтрака.

И, наконец, нам не нужен forEach здесь, так как каждый ваш рецепт вегетарианского завтрака будет после каждого последнего матча, поэтому все, что требуется, - это создать отношения.

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) 
Смежные вопросы