obsidian选择当前笔记3日内未完成的task

obsidian选择当前笔记3日内未完成的task

编写于2022-04-06
参考https://blacksmithgu.github.io/obsidian-dataview/query/queries/

dataview代码

代码块内填写
TASK FROM #daily
where (this.file.day - file.day < dur(3 day)) and !completed and file.day != this.file.day
sort file.day desc
limit 5

2022-04-06_17-20
优点是只筛选task,可以直接点击完成,不用点开文件

obsidian简化版dataview语法

obsidian中dataview使用的是简化版DQL语法,支持以下5个语句

TABLE|LIST|TASK <field> [AS "Column Name"]
FROM <source> (like #tag or "folder")
WHERE <expression> (like 'field = value')
SORT <expression> [ASC/DESC] (like 'field ASC')
LIMIT <number>

TABLE|LIST|TASK语句

TABLE|LIST|TASK <field> [AS "Column Name"]

  1. TABLE|LIST|TASK 三者选择一个,决定dataview的展示形式是表格|列表|任务其中一种,可以不加任何参数
    • TABLE
  2. 可以是obsidian内部属性(使用两个冒号,如author:: pirrede)或者metadata的属性(文件头部属性,如 title: have_fun)
    • LIST author
  3. AS "column Name"使用TABLE时可以自定义<field>的列名
    • TABLE this.file.day as “创建日期”
  4. TABLE多个<field>可以连用,用,隔开
    • TABLE this.file.day,file.day
  5. LIST可以使用+连接多个<field>作为最后的名称
    • LIST "File Path: " + file.path FROM "4. Archive"
    • LIST WITHOUT ID # 不显示文件名

FROM语句

FROM <source> (like #tag or "folder")

  1. 通常是标签文件夹链接任意一个,常用标签文件夹
    • LIST FROM 'Day Planners'
    • LIST FROM #daily
  2. 也可使用链接,内部外部均可,请查看FROM语句

WHERE语句

WHERE <expression> (like 'field = value')

  1. <expression>中是各种属性判断,如contain,between,<,=,>,!等,可以使用andor连接判断结果
  2. 使用this代指当前文档
    • where (this.file.day - file.day < dur(3 day)) and !completed and file.day != this.file.day # 判断当前文件前3天内的文件,排除自身,然后筛选其中task是!completed的结果
  3. 其他高级筛选方式见文档

SORT语句

SORT field1 [ASCENDING/DESCENDING/ASC/DESC], ..., fieldN [ASC/DESC]
按照field1的属性排序,升降序

GROUP BY \ FLATTEN \ LIMIT