Есть ли такая функция, как select-keys
, но со значениями по умолчанию для отсутствующих ключей?
Причина, по которой я спрашиваю, заключается в том, что я использую korma для запроса базы данных.Я обнаружил ошибку, при которой использование select-keys
не является интуитивно понятным, когда нет совпадений.
Пример:
(delete t
(where
(select-keys {:k1 "v1" :k2 "v2"} [:k1])))
То же, что и:
(delete t
(where {:k1 "v1"}))
Что переводится черезкорма что то типа:
delete from t where k1='v1'
Ницца.select-keys
создает только карту запроса, которую я хочу.
Но :
(delete t
(where
(select-keys {:k2 "v2"} [:k1])))
То же, что:
(delete t
(where {}))
, которая переводится через кормучто-то вроде:
delete from t
, который удалит всю мою таблицу t
: (
Я думал об использовании (merge defaults (select-keys ...))
или создании функции select-keys-with-default
, но я чувствовал, что как(get m :blah "default")
, вероятно, должно быть что-то встроенное, чего мне не хватает.
Просмотр документов или связанных с ними функций, предлагаемых там, не показал ничего полезного из коробки.