Фильтровать результаты запроса

Я использую boss_db с erlang а также chicagoboss, AFAIK, мы всегда должны стараться использовать минимальное количество запросов к базе данных. Прямо сейчас я делаю два отдельных запроса для одного результата. Я предполагаю, что это можно сделать одним запросом, но не знаю как.

Query1

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

Query2

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

Есть ли способ добиться этого в одном запросе? лайк:

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

1 ответ

Решение

Пытаться lists:filter()

 ActiveLegalUserList = lists:filter(fun(User) -> 
                           User:legal() == true end, 
                       ActiveUserList).
Другие вопросы по тегам