首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Foreach中的neo4j case语句

Foreach中的neo4j case语句
EN

Stack Overflow用户
提问于 2017-04-07 01:23:47
回答 1查看 956关注 0票数 0

写这个查询最有效的方法是什么?问题所在。我有一组3500个打篮球的男孩和女孩的名字。我想与他们建立一种关系,因为他们belong_to幼儿,青年,青少年基于他们的年龄组。

我无法在foreach中执行case语句。

代码语言:javascript
运行
AI代码解释
复制
Match(b:BoysandGirls)
UNWIND (b.name) as namelist
FOREACH (fullname in namelist | 
  MERGE(b1:BoysandGirls {name:fullname})
  CASE WHEN b1.age < 6 THEN
       MERGE(t1:KidsType {group:"Toddler"})  // this groups already exist
       MERGE(b1)-[BELONGS_TO]->(t1)
   END
)

//我有更多像年轻人和青少年这样的群体...但不确定

我收到一个错误: Invalid input ...应为1/L..at CASE语句。我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2017-04-07 01:58:41

FOREACH只允许变异操作,但CASE不是变异操作(并且CASE也不能包含匹配/变异操作)。除了这些问题之外,我认为您还对UNWIND的用途感到困惑--您可能指的是COLLECT。但我认为你根本不需要使用COLLECTFOREACH (因为它们基本上相互抵消)。

这个简单得多的查询可能就是您所需要的:

代码语言:javascript
运行
AI代码解释
复制
MATCH (bg:BoysandGirls)
WHERE bg.age < 6
MATCH (t:KidsType {group:"Toddler"})
MERGE (bg)-[:BELONGS_TO]->(t);

它会找到所有小于6的关系,并确保它们与“BELONGS_TOKidsType相关(通过BELONGS_TO关系类型--请注意前面所需的冒号)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43268190

复制
相关文章

相似问题

领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文