我在Chicagoboss API中查找了这个查询,但找不到任何解决方案来编写" OR"查询。我必须写一个类似的查询:
select * from TableName where table.key1 = "XXXX1" OR table.key2 = "XXXX2"
这是我的chicagoboss查询,我想检查三个标志中的任何一个是否为真,然后对继承人做一些事情。
Heirs = boss_db:find(heir, [{flag1, 'equals', true}, {flag2, 'equals', true},
{flag3, 'equals', true}], [{order_by, code}]).
要执行此操作,是否有类似的内容:
Heirs = boss_db:find(heir, [{{flag1, 'equals', true}, orelse, {flag2, 'equals', true}, orelse, {flag3, 'equals', true}}], [{order_by, code}]).
答案 0 :(得分:2)
根据documentation和boss_db.erl的源代码,find/3
似乎会返回与给定条件的所有匹配的记录。
您应该提交an issue on GitHub。
SQL数据库存在变通方法(使用未记录的函数boss_db:find_by_sql/3
),但是由于标记,您似乎没有使用MongoDB。因此,您必须通过多次调用来获取记录。
答案 1 :(得分:1)
您可以使用以下内容:
Var = case boss_db:find(heir,[{flag1, 'equals', true}]) of
Data -> Data;
[] -> case boss_db:find(heir,[{flag2, 'equals', true}]) of
Data -> Data;
[] -> "no data"
end
end.