【发布时间】:2023-01-12 03:46:33
【问题描述】:
我有一个 Gremlin 查询,我想在其中报告有关学校环境中家庭的某些统计数据。对于每位家长,我想计算他们家庭的某些统计数据:男孩/女孩的数量、参加 STEM 课程的孩子数量等。我正在使用 project().by() 来确保我报告每个家庭的统计数据父母,即使他们没有符合条件的孩子(例如孩子尚未上学的父母)。
我的查询从寻找父母开始。但是,当我尝试获取他们孩子的列表时,我的所有统计数据都是针对所有孩子的,而不仅仅是特定父母的孩子。如果查找子项的遍历步骤是在 by() 步骤内执行的,我会得到父项的子项的正确统计信息。但这意味着我必须在每个 by() 步骤中复制这些遍历步骤。
我的查询看起来像这样:
g.V().hasLabel('Parent').
project('Parent', 'boys', 'girls', 'STEM_students', 'sport_participants').
by('name').
by( <traversal to find parent's children>.
<filter parent's boys>.count()).
by( <traversal to find parent's children>.
<filter parent's girls>.count()).
by( <traversal to find parent's children>.
<filter parent's STEM students>.count()).
by( <traversal to find parent's children>.
<filter parent's sports students>.count())
我在这个查询中得到了正确的答案,但必须运行遍历四次才能找到每个父母的孩子。我想为每个父母运行一次遍历。关于如何改革我的查询的建议?
【问题讨论】:
标签: gremlin