我正在尝试计算一个查询以根据可过滤选项、颜色、大小等过滤掉产品
用例:获取所有尺寸为 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 查询的结果。显得比较笨拙!:(