Skip to content

Obsidian Dataviewクエリ

メモをクエリした結果の出力方法はいくつかある。

LIST [field]

リストの場合、1つだけフィールドを記述できる。省略すると ID が使われる。

TABLE [WITHOUT field] [field [AS name], ...]

テーブルの場合は複数のフィールドを記述できる。省略すると ID が使われる。

フィールドを記述した場合も、テーブルの先頭カラムは ID になる。これを抑制する場合は WITHOUT ID と書く。

TASK [field]

これは使ったことがない。

FROM を使うと「特定のタグを持っている」とか「特定のディレクトリ以下だけ」のような検索ができる。FROM を省略するとすべてのメモから検索する。

タグを検索する場合は #tag と書く。

FROM #tag

ディレクトリ以下を検索する場合は単に名前を書く。

FROM "2024/12"

否定する場合は ! または - を使う。

FROM #account AND !"_templates"

Dataviewクエリが書かれたファイルの情報は this オブジェクトから参照できる。

-- frontmatterにあるcreated_dateを参照する
WHERE created_date = this.created_date
-- ファイルそのものの名前を参照する
WHERE filename = this.file.name

インターネットで検索すると this.frontmatter.key も使えそうだが、手元だとうまく動かなかった。

date 関数で型を表現する。

WHERE created_date = date(2024-12-10)

string でキャストする。

LIST string(this.created_date.year)