我正在尝试使用密码创建一个查询,该查询将“查找”厨师可能拥有的缺失成分,我的图表设置如下:
(ingredient_value)-[:is_part_of]->(ingredient)
(ingredient)
将具有名称 =“染料颜色”的键/值。 (ingredient_value)
可能具有 value="red" 和“是”的键/值(ingredient, name="dye colors")
。
(chef)-[:has_value]->(ingredient_value)<-[:requires_value]-(recipe)-[:requires_ingredient]->(ingredient)
我正在使用此查询来获取ingredients
食谱所需的所有,但不是它们的实际值,但我希望只返回ingredients
厨师没有的,而不是每个食谱所需的所有成分。我试过了
(chef)-[:has_value]->(ingredient_value)<-[:requires_value]-(recipe)-[:requires_ingredient]->(ingredient)<-[:has_ingredient*0..0]-chef
但这什么也没返回。
这是可以通过 cypher/neo4j 完成的事情,还是最好通过返回所有成分并自己对它们进行分类来处理?
奖励:还有一种方法可以使用 cypher 将厨师拥有的所有值与食谱所需的所有值相匹配。到目前为止,我只返回了 a 返回的所有部分匹配项,chef-[:has_value]->ingredient_value<-[:requires_value]-recipe
并自己汇总了结果。