Dataview Query Builder Tutorial:DQL をステップごとに学ぶ

この Dataview Query Builder Tutorial では、DQL を一行ずつ手書きしなくても、最初の実用的なクエリを作れるように案内します。

下の 5 ステップで、クエリタイプの選択、データソースの設定、フィルター追加、生成コードのコピー、Obsidian ノートへの貼り付けまで進めます。

Dataview Query Builder を開く →

登録不要。無料で使え、生成処理はブラウザ内で完結します。

始める前に

Obsidian をインストールする

Markdown ノートを保存する Vault と、Obsidian のデスクトップ版またはモバイル版が必要です。

詳しく見る

Dataview コミュニティプラグインを有効にする

Obsidian の設定でコミュニティプラグインを有効にし、Dataview を検索してインストールし、オンにします。

詳しく見る

フィールドやタグ付きのノートを用意する

小さなテスト Vault で十分です。status、due、priority、tags などの frontmatter を追加すると、生成したクエリで読み取れるデータになります。

5 ステップで最初の DQL クエリを作る

ステップ 1:ツールを開く

Dataview Query Builder を開いたら、空白の状態から始めるのではなく、あらかじめ入力されているデモクエリから始めます。この最初のステップが重要なのは、動作する TABLE クエリが安全な基準になるからです。選択されているクエリタイプ、Projects フォルダのソース、status フィルター、並び替えルール、生成された DQL を同時に確認できます。初心者によくある失敗は、最初から複数のコントロールを変更してしまい、どの変更で出力が壊れたのか分からなくなることです。まずプレビューを読み、各ビジュアルコントロールがどの DQL 行を生成しているかを確認してから編集を始めてください。小さなコツは、デモクエリをしばらくそのまま残し、Obsidian のテスト用ノートにコピーすることです。フォルダ名だけを自分用に直して正常に表示されれば、Dataview プラグインとコードブロック形式は正しく動いています。

ホームページのツールを開き、生成されたプレビューを確認します。

ステップ 2:クエリタイプを選ぶ

フィールドを調整する前にクエリタイプを選びます。TABLE、LIST、TASK、CALENDAR はそれぞれ違う種類の目的に向いているからです。status、期限、担当者、評価、プロジェクトなどの列を持つダッシュボードが必要な場合は TABLE が適しています。読書キュー、タグ付きノート、最近編集したノートの索引など、結果をコンパクトにしたい場合は LIST が向いています。ノートそのものではなく、ノート内の Markdown タスク項目を収集したい場合は TASK を使います。よくある間違いは、リンクだけで十分なのに TABLE を使って不要な列を増やすこと、または複数のフィールドを比較したいのに LIST を使うことです。まず Obsidian 内で最終的にどのような結果を見たいのかを決め、その見た目に合うクエリタイプを選ぶのがコツです。

ビルダー上部で TABLE、LIST、TASK を選択します。

ステップ 3:FROM でデータソースを設定する

FROM ソースを設定すると、Dataview が Vault のどの範囲を検索すべきか分かります。ノートが一つの場所にまとまっている場合は Projects、Meetings、Reading、Daily などのフォルダを使い、関連ノートが複数のフォルダに分散している場合は #project や #research のようなタグを使います。このステップは重要です。結果が空になる原因の多くは WHERE ルールの失敗ではなく、ソース指定の誤りだからです。フォルダ名の大文字小文字、ネストしたフォルダ名、フォルダパスを囲む引用符に注意してください。Projects/Active というフォルダは Projects と同じソースではありません。タグを使う場合は、Dataview が読み取れる場所にそのタグが実際に存在するか確認します。実用的なコツは、フィルター、並び替え、件数制限を追加する前に、シンプルな LIST クエリでソースだけを先にテストすることです。

Folder または Tag を選び、ソース値を入力します。

ステップ 4:WHERE で条件を追加する

ソースが正しく動くことを確認してから WHERE フィルターを追加します。フィルターは有効な結果セットを絞り込むためのもので、ゼロからノートを探すためのものではありません。status != archived は完了済みまたは非アクティブなプロジェクトノートを隠し、priority >= 3 は重要な項目を表示し、contains(tags, work) は特定のタグ値を含むノートを探します。due < date(today) は期限切れレビューにも使えます。最も多いミスは、すべてのノートに存在しないフィールドで絞り込むこと、または frontmatter と一致しない値タイプを使うことです。たとえば日付比較を安定させたい場合、日付フィールドは実際の日付値として保存されている必要があります。フィルターは一つずつ追加し、プレビューを確認して Obsidian でテストしてから次を追加してください。クエリが何も返さない場合は、一時的に WHERE 行を外すのがよい方法です。結果が表示されるならソースは正しく、フィルター側を確認すべきです。

空の結果を調べやすくするため、WHERE 条件は一つずつ追加します。

ステップ 5:生成された DQL をコピーして貼り付ける

プレビューがテストしたい内容と一致してから、生成された DQL をコピーします。Obsidian ノートには DQL 行だけではなく、dataview のコードブロック全体を貼り付けてください。Obsidian は fenced code block の言語指定を使って、クエリを Dataview プラグインに渡すためです。ノート上でただのテキストとして表示される場合は、開始側のコードフェンスが正確に dataview と指定されているか、プラグインが有効かを確認します。Dataview エラーが表示される場合は、まずエラー行を読みます。多くの場合、フィールド名、引用符、演算子、値タイプの問題を指しています。クエリが表示されたら、フォルダ名とフィールド名を自分の Vault に合わせて調整します。新しいクエリは、ダッシュボードや恒久的なレビュー用ノートへ移す前に、Obsidian 内の専用テストノートで試すのがおすすめです。

プレビューパネルの Copy ボタンで生成コードを取得します。

ツールで練習する

このガイドを読みながら Dataview Query Builder を使い、生成された出力をこれらの Dataview query examples と比較してください。一度に一つのコントロールだけを変更し、DQL プレビューの変化を見るのが早い学び方です。

Vault 内のフィールド名が分かっている場合は、 Dataview Query Builder を開き、自分のフォルダ、タグ、WHERE 条件で同じ種類のクエリを作成します。

よくある質問

生成したクエリが Obsidian で結果を表示しない場合は?

まず Dataview コミュニティプラグインがインストールされ、有効化され、現在の Vault で実行できる状態になっているか確認します。次に、クエリをクエリタイプと FROM 行だけに簡略化します。これにより、フィルターを適用する前に Dataview が一致するノートを見つけられるか分かります。簡略化したクエリが動く場合は、WHERE 条件を一つずつ戻し、どの条件で結果が空になるか確認します。フォルダ名、タグ名、フィールド名、日付・真偽値・数値・文字列などの値タイプに注意してください。さらに、本来一致するはずのノートを一つ開き、その frontmatter や inline fields がクエリと同じ名前を使っているか確認します。このように段階的に絞り込む方が推測より早く、単一フィールドの不一致だけで良いクエリ全体を書き直すことを防げます。

どの Dataview クエリタイプに対応していますか?

このチュートリアルでは、TABLE、LIST、TASK、CALENDAR 系クエリの基本的なワークフローを扱います。特に、ユーザーがよく使うビジュアルビルダーのパターンに重点を置いています。列や比較が必要な場合は TABLE、シンプルなノート索引が必要な場合は LIST、対象ノート内の Markdown タスク項目を集めたい場合は TASK を使います。CALENDAR クエリもソースと日付フィールドに関する考え方は同じですが、実際の出力は Vault が日付メタデータをどのように保存しているかに左右されます。どのタイプを選ぶべきか迷う場合は、まず LIST でソースが機能することを確認し、フィールドが必要なら TABLE、タスク行が必要なら TASK に移るとよいです。最初のクエリをシンプルに保つと、後のデバッグがかなり楽になります。

私のデータはサーバーに送信されますか?

いいえ。ビルダーはブラウザ内で DQL テキストを生成するだけで、Obsidian Vault、ノート本文、フォルダ、タグ、frontmatter をサーバーへアップロードしません。ユーザーがフォームにフォルダ名、フィールド名、タグ、フィルター値を入力し、ツールはそれらをクエリ文字列に変換します。このプライバシーモデルは重要です。多くの Obsidian Vault には個人メモ、顧客情報、研究資料、非公開の計画が含まれるためです。生成されたコードを Obsidian にコピーすることはできますが、実際にクエリを実行するのはローカルの Obsidian アプリ内にある Dataview プラグインです。機密性の高い Vault を扱う場合は、どの Web ツールにも個人的なノート本文を貼り付けないでください。このビルダーに必要なのはクエリ構造だけです。

次のステップ