我试图计算查询以基于可筛选选项,颜色,大小e.t.c过滤掉产品。根据选项筛选出产品
使用案例:获得具有尺寸8和红色
尝试1所有产品:使用交会
FOR product IN products
FILTER product.options != null
FOR productOption IN product.options
FILTER productOption.option == "Size" AND LENGTH(INTERSECTION(productOption.value, ["8","14","16"])) > 0
AND productOption.option == "Color" AND LENGTH(INTERSECTION(productOption.value, ["Red"])) > 0
RETURN product
尝试2:使用多个过滤器
FOR product IN products
FILTER product.options != null
FOR productOption IN product.options
FILTER productOption.option == "Size"
FOR productSizeOptionValue IN productOption.value
FILTER productSizeOptionValue IN ["8","10"]
FILTER productOption.option == "Color"
FOR productColorOptionValue IN productOption.value
FILTER productColorOptionValue IN ["Red"]
RETURN product
我不确定我的想法是否应该沿着第一个可能的路线走产品候选人使用LET而不是合并每个单独的LET查询的结果。看起来相当笨拙! :(
尝试这个http://pastebin.com/hzAsFbuQ,添加数组索引[0]因为我需要结果作为JSON数组而不是[[json]]。然而,我对实施感到不舒服。他们必须更好/更可接受的方式... – iswak