arangodb中数组内的筛选器不工作

cunj1qz1  于 2022-12-09  发布在  Go
关注(0)|答案(1)|浏览(175)

我尝试在this page上求解Q.20。数据集为here
Q20.编写一个MongoDB查询,查找得分不超过10的餐厅的餐厅ID、名称、行政区和美食。
我尝试了以下方法,但我发现我得到的结果是得分为[2,6,10,9,14]和[8,23,12,12]的餐厅。所以我知道这不可能是正确的。

for r in restaraunts    
    for g in r.grades
        filter g.score <=10
        return distinct {ID:r.restaurant_id,name:r.name,borough:r.borough,cuisine:r.cuisine,score:r.grades[*].score}

请帮帮忙,我已经尝试了不同的分数投影,但我觉得我忽略了一些东西。如果我使用收集,我仍然得到错误

collect rest=r.restaurant_id,name= r.name, bor=r.borough,cuis=r.cuisine, sc=r.grades[*].score into groups
    for g in sc
    filter g<=10
    return {rest:rest,name:name,bor:bor,cuis:cuis,sc:g}
smtd7mpg

smtd7mpg1#

使用MAX()函数确定要过滤的值:

for r in restaurants    
    LET score = MAX(r.grades[*].score)
    filter score <=10
    return distinct {ID:r.restaurant_id,name:r.name,borough:r.borough,cuisine:r.cuisine,score:score}

我没有针对您的数据集进行测试,但使用了以下一小段代码:

LET r = {'grades': [ {score: 5}, {score: 7}, {score: 15} ] }
RETURN MAX(r.grades[*].score)

相关问题