2

我在 Chicagoboss API 中查找了这个查询,但找不到任何解决方案来编写“OR”查询。我必须写一个类似的查询:

select * from TableName where  table.key1 = "XXXX1" OR   table.key2 = "XXXX2"

这是我的芝加哥老板查询,我想检查三个标志中的任何一个是否为真,然后对继承人做点什么。

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}]).
4

2 回答 2

2

根据boss_db.erl的文档和源代码,似乎返回匹配所有给定条件的记录。find/3

您应该在 GitHub 上提交问题

SQL 数据库存在一种解决方法(使用未记录的函数boss_db:find_by_sql/3),但对于 MongoDB 则没有,您似乎因为标签而使用。因此,您将不得不通过多次调用来获取记录。

于 2014-07-11T11:31:29.030 回答
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.
于 2014-10-28T21:40:58.033 回答