1

我正在boss_db使用erlangchicagoboss。AFAIK,我们应该始终尝试使用最少数量的数据库查询。现在,我正在为一个结果进行两个单独的查询。我假设可以在一个查询中完成,但不知道如何。

查询1

ActiveUserList = boss_db:find(user,
                             [{status, 'equals', active},{cid, 'equals', Cid}]).

查询2

ActiveLegalUserList = boss_db:find(user, 
     [{status, 'equals', active},{cid, 'equals', Cid},{legal, 'equals', true}]).

有没有办法在一个查询中实现这一点?喜欢:

ActiveLegalUserList = ActiveUserList:filter({legal, 'equals', true}).
4

1 回答 1

1

尝试lists:filter()

 ActiveLegalUserList = lists:filter(fun(User) -> 
                           User:legal() == true end, 
                       ActiveUserList).
于 2015-05-08T07:23:11.887 回答