我需要使用searchkick构建一个布尔查询,该查询将检查多个数组,并且如果数组的所有元素都存在,则条件必须为true。
我想要包含["2019-11-05", "2019-11-06", "2019-11-07"]
来自一个数组的所有日期的记录或来自第二个数组["2019-11-08", "2019-11-09", "2019-11-10"]
它非常适合这样的一个数组。
available_on: { all: ["2019-11-05", "2019-11-06", "2019-11-07"] }
我需要这样的东西
available_on: { or: { all: ["2019-11-05", "2019-11-06", "2019-11-07"] , all: ["2019-11-08", "2019-11-09", "2019-11-10"]} }
我们如何创建查询available_on = A或B
答案 0 :(得分:1)
您是否尝试在'where'子句中使用它?
_or: [{available_on: {all: ["2019-11-05", "2019-11-06", "2019-11-07"]}}, {available_on: {all: ["2019-11-05", "2019-11-06", "2019-11-07"]}} ]}
答案 1 :(得分:1)
您应将where
与or
过滤器一起使用,如下所示:
where {or: [[{available_on: {all: ["2019-11-05", "2019-11-06", "2019-11-07"]}},
{available_on: {all: ["2019-11-08", "2019-11-09", "2019-11-10"]}}]]}
或使用_or
过滤器:
where {_or: [{available_on: {all: ["2019-11-05", "2019-11-06", "2019-11-07"]}},
available_on: {all: ["2019-11-08", "2019-11-09", "2019-11-10"]}]}
_or
和or
之间的结果没有区别,只是语法略有不同(or
使用一对双方括号)