Фильтровать результаты запроса
Я использую 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).