ホームページ テクノロジー周辺機器 IT業界 Elixir' s cecto Querying DSL:The Basics

Elixir' s cecto Querying DSL:The Basics

Feb 18, 2025 pm 12:03 PM

Elixirでのecto Querying:初心者のガイド

重要な概念:

Ectoは、SQLを密接に反映したデータベースインタラクション用のElixirのDSLです。 機能的には同等ですが、スタイルは異なるキーワードとマクロクエリの構文を提供します。

  • などのコア関数は、正確なデータ選択を許可します。
  • 集約関数(
  • wherelimitoffsetdistinct
  • )複雑なデータ計算を有効にします。 group_by havingcountavgアプリケーションの開始:summin max例では、
  • アプリケーションを使用します。 次のように、データベースをクローン、セットアップ、および移行します

(ここではMySQLが使用されています。他のデータベースに適応できますが、後の例のいくつかはMySQL固有の場合があります。) ectoingデータベーススキーマ:

ectoing

git clone https://github.com/tpunt/ectoing
cd ectoing
mix deps.get
# Update credentials in config/config.exs
mix ecto.create
mix ecto.migrate
mix run priv/repo/seeds.exs
ログイン後にコピー
基本的なクエリ:

簡単なクエリから始めましょう。 Elixir Shell(

) すべてのユーザーの取得:

Understanding Elixir's Ecto Querying DSL: The Basics sql:

ecto(キーワード構文):

ecto(マクロ構文):Ecto.Query iex -S mix

特定のフィールドの選択(FirstName、姓):

sql:

SELECT * FROM users;
ログイン後にコピー
ecto(キーワード構文):

query = Ectoing.User
Ectoing.Repo.all(query)
ログイン後にコピー
ecto(マクロ構文):

query = Ectoing.User |> Ecto.Query.all()
Ectoing.Repo.all(query)
ログイン後にコピー
結果は、

結果のフィルタリングとカスタマイズ:

SELECT firstname, surname FROM users;
ログイン後にコピー
データのサブセットを選択するためにクエリを調整しましょう。

姓「DOE」でユーザーを選択:
query = from u in Ectoing.User, select: [u.firstname, u.surname]
Ectoing.Repo.all(query)
ログイン後にコピー

sql:

query = Ectoing.User |> Ecto.Query.select([u], [u.firstname, u.surname])
Ectoing.Repo.all(query)
ログイン後にコピー

ecto(キーワード構文):select

ecto(マクロ構文):

異なる姓の選択、順序付け、および制限:

sql:

ecto(キーワード構文):

SELECT * FROM users WHERE surname = "doe";
ログイン後にコピー

ecto(マクロ構文):

surname = "doe"
query = from u in Ectoing.User, where: u.surname == ^surname
Ectoing.Repo.all(query)
ログイン後にコピー

集約クエリ:
surname = "doe"
query = Ectoing.User |> Ecto.Query.where([u], u.surname == ^surname)
Ectoing.Repo.all(query)
ログイン後にコピー

ectoは集約関数をサポートしています。

平均的な友人評価を持つユーザーを見つける4以上:
SELECT DISTINCT surname FROM users LIMIT 3 ORDER BY surname;
ログイン後にコピー

sql:

query = from u in Ectoing.User, select: u.surname, distinct: true, limit: 3, order_by: u.surname
Ectoing.Repo.all(query)
ログイン後にコピー

ecto(キーワード構文):

query = Ectoing.User
|> Ecto.Query.select([u], u.surname)
|> Ecto.Query.distinct(true)
|> Ecto.Query.limit(3)
|> Ecto.Query.order_by([u], u.surname)
Ectoing.Repo.all(query)
ログイン後にコピー

ecto(マクロ構文):(キーワードの構文と同様の構造、パイプオペレーターを使用)

結論:

この紹介では、Ectoのクエリの基本をカバーしています。 次のステップでは、参加、複雑なクエリ、高度なテクニックの探索が含まれます。 包括的なガイドについては、ECTOドキュメントを参照してください

以上がElixir' s cecto Querying DSL:The Basicsの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

GOでネットワークの脆弱性スキャナーを構築します GOでネットワークの脆弱性スキャナーを構築します Apr 01, 2025 am 08:27 AM

このGOベースのネットワーク脆弱性スキャナーは、潜在的なセキュリティの弱点を効率的に識別します。 Goの同時機能機能を速度で活用し、サービスの検出と脆弱性のマッチングが含まれます。その能力と倫理を探りましょう

CNCF ARM64パイロット:インパクトと洞察 CNCF ARM64パイロット:インパクトと洞察 Apr 15, 2025 am 08:27 AM

このパイロットプログラム、CNCF(クラウドネイティブコンピューティングファンデーション)、アンペアコンピューティング、Equinix Metal、およびActuatedのコラボレーションであるCNCF GithubプロジェクトのARM64 CI/CDが合理化されます。 このイニシアチブは、セキュリティの懸念とパフォーマンスリムに対処します

AWS ECSとLambdaを備えたサーバーレス画像処理パイプライン AWS ECSとLambdaを備えたサーバーレス画像処理パイプライン Apr 18, 2025 am 08:28 AM

このチュートリアルは、AWSサービスを使用してサーバーレスイメージ処理パイプラインを構築することをガイドします。 APIゲートウェイ、Lambda関数、S3バケット、およびDynamoDBと対話するECS Fargateクラスターに展開されたnext.jsフロントエンドを作成します。 th

2025年に購読する上位21の開発者ニュースレター 2025年に購読する上位21の開発者ニュースレター Apr 24, 2025 am 08:28 AM

これらのトップ開発者ニュースレターを使用して、最新のハイテクトレンドについてお知らせください! このキュレーションされたリストは、AI愛好家からベテランのバックエンドやフロントエンド開発者まで、すべての人に何かを提供します。 お気に入りを選択し、Relを検索する時間を節約してください

See all articles