#elixir #ecto
Вопрос:
Я хочу извлечь все первичные ключи из таблицы, но я не хочу извлекать какие-либо другие поля из базы данных. То, что я нашел до сих пор, — это рекомендации по использованию Repo.all
, Map.take
но это явно слишком много извлекает из базы данных.
Как мне извлечь одно поле из всех записей в схеме ecto?
Ответ №1:
Ecto.Query.select/3
это твой друг.
from u in User, select: u.id
Чтобы получить несколько полей, используйте
from u in User, select: {u.id, u.name}
Комментарии:
1.
module.__schema__(:primary_key)
также может быть полезно 🙂2. Я думаю, что этот дополнительный кортеж вокруг одного значения может раздражать.
3. @Hauleth Я подумал об этом и решил, что это показывает расширяемость для возврата 2 полей. Хотя я могу и ошибаться.
4. @AlekseiMatiushkin почему бы не иметь два фрагмента кода? один отвечает на точный вопрос, а другой предлагает очень вероятное продолжение?
5. @FilipHaglund пожалуйста, не стесняйтесь редактировать мой ответ, как вы сочтете его более подходящим.