Obsidian 插件篇 -Dataview 插件的基础语法

Obsidian 插件篇 -Dataview 插件的基础语法

本篇文章主要梳理介绍一下 Dataview 插件的基础语法。原文地址:Obsidian插件篇-Dataview插件的基础语法

Dataview 完整查询语法

md 复制代码
<QUERY-TYPE:table/list/task/calendar> <WITHOUT ID> <字段> 
FROM <来源> 
<WHERE> <条件表达式> 
<SORT> <排序依据 排序方式> 
<GROUP BY> <分组依据> 
<LIMIT> <限定显示记录数> 
<FLATTEN> <拆分表达式> 

Dataview 字段

文件自带的属性

文件属性 字段类型 属性说明
file.name Text 文件名
file.folder Text 所在文件夹
file.path Text 完整路径 + 完整文件名
file.ext Text 扩展名
file.link Link 链接至本文件
file.size Number 文件大小 (bytes)
file.ctime Date Time 创建时间
file.cday Date 创建日期
file.mtime Date Time 最后修改时间
file.mday Date 最后修改日期
file.tags List 文中的标签和 YAML 中的 tags
file.etags List 文中的标签和 YAML 中的 tags
file.inlinks List 反向链接
file.outlinks List 正向链接
file.tasks List 文中的任务列表
file.lists List 文中的列表 (包含任务列表)
file.frontmatter List 文件中的 YAML 块内容
file.starred Boolean 加星

YAML 定义属性

yaml 属性直接使用,无需前缀;参考以下示例。

text 复制代码
```dataview
//示例
table info,author,file.frontmatter.author
from "index"
where contains(file.name,"index")
```

属性的字段类型

字段类型 表达方式 举例
Text 用 "" 括起来的字符 " 这就是 Text 类型 "
Number 由符号 + - 数字 0 ~ 9 和小数点 . 组成 -1.98
Boolean 只有 true 和 false 两个值,表示是与否 true
Date 由日期和时间组成,遵循 ISO 8601 标准格式为 YYYY-MM[-DDTHH:mm:ss.nnn+ZZ] 2024-08-18
Link 使用双链的链接 [[ a ]]
List 有序/无序/任务列表 - 无序列表

Dataview 来源

来源

Tags 标签
text 复制代码
```dataview 
LIST FROM #DataView 
```
Folders 文件夹
text 复制代码
```dataview 
TABLE file.link as "文件名称", aliases as "别名", dateformat(file.cday,"yyyy-MM-dd") as "创建日期", choice(file.starred, "是", "否") as "加星" FROM "Study"  
```
Specific Files 指定文件
text 复制代码
```dataview 
TABLE file.link as "文件名", file.tasks.text as "任务名", choice(file.tasks.completed, "是", "否") as "已完成" FROM "Study/Java" 
```
text 复制代码
```dataview 
LIST FROM [[内部文件链接]] 
``` 

//查询 [[内部文件链接]] 被哪些文件链接,即入链 
```dataview 
LIST FROM outgoing([[MySQL]]) 
```
Combing Sources 多重来源
text 复制代码
#即以上来源联合起来使用
```dataview 
TABLE aliases as "别名" 
FROM "1.Projects" and outgoing([[MySQL]]) 
SORT file.cday DESC 
```

Dataview-where 过滤条件

Text 类条件
包含指定文本
text 复制代码
#icontains 大小写不敏感
#contains 大小写敏感 
```dataview TABLE file.link as "文件名称" FROM "Study" WHERE icontains(file.name,"obsidian") ``` 
不包含指定文本
text 复制代码
```dataview TABLE file.link as "文件名称" FROM "Study" WHERE !icontains(file.name,"obsidian") ``` 
以特定文本开头/结尾
text 复制代码
```dataview TABLE file.link as "文件名称" FROM "Study" WHERE startswith(file.name,"Obsidian") or endswith(file.name,"dian") ```
英文大小写转换
text 复制代码
```dataview TABLE file.link as "文件名称" FROM "Study" WHERE startswith(upper(file.name),"OBSIDIAN") or endswith(lower(file.name),"dian") ```
Number 类条件
text 复制代码
#大于等于 >=
#不等于!=
...... WHERE number >= 8
Date 类条件
日期的格式化
text 复制代码
```dataview TABLE dateformat(file.cday,"yyyy-MM-dd") as "创建日期", dateformat(file.ctime,"HH:mm: ss") as "创建时间",  FROM "Study" ``` 
大于等于指定日期
text 复制代码
```dataview TABLE dateformat(file.cday,"yyyy-MM-dd") as "创建日期" FROM "Study" WHERE file.cday >= date("2023-02-19") ```
常用的日期属性
text 复制代码
// year // month // day // date (today) // date (now) // date (tomorrow) // date (yesterday) // date (sow) // date (eow) 

#本月创建的
```dataview TABLE dateformat(file.cday,"yyyy-MM-dd") as "创建日期" FROM "Study" WHERE file.cday.month = date(today).month ``` 

```dataview TABLE dateformat(file.cday,"yyyy-MM-dd") as "创建日期" FROM "Study" WHERE file.cday >= date(sow) and file.cday <= date(eow) ```
Boolean 类条件
text 复制代码
```dataview TABLE file.link as "文件名称", choice(file.starred, "是", "否") as "加星" FROM "study"  ``` 
text 复制代码
```
...... WHERE contains(file.outlinks, [[内部文件链接]]) ``` 
相关推荐
jack_xu1 小时前
经典大厂面试题——缓存穿透、缓存击穿、缓存雪崩
java·redis·后端
Xiaoyu Wang3 小时前
Go协程的调用与原理
开发语言·后端·golang
爱发飙的蜗牛3 小时前
springboot--web开发请求参数接收注解
java·spring boot·后端
橘猫云计算机设计4 小时前
springboot-基于Web企业短信息发送系统(源码+lw+部署文档+讲解),源码可白嫖!
java·前端·数据库·spring boot·后端·小程序·毕业设计
程序猿chen4 小时前
JVM考古现场(二十五):逆熵者·时间晶体的永恒之战(进阶篇)
java·jvm·git·后端·程序人生·java-ee·改行学it
细心的莽夫4 小时前
Elasticsearch复习笔记
java·大数据·spring boot·笔记·后端·elasticsearch·docker
程序员阿鹏4 小时前
实现SpringBoot底层机制【Tomcat启动分析+Spring容器初始化+Tomcat 如何关联 Spring容器】
java·spring boot·后端·spring·docker·tomcat·intellij-idea
Asthenia04125 小时前
HTTPS 握手过程与加密算法详解
后端
刘大猫265 小时前
Arthas sc(查看JVM已加载的类信息 )
人工智能·后端·算法
Asthenia04125 小时前
操作系统/进程线程/僵尸进程/IPC与PPC/进程大小/进程的内存组成/协程相关/Netty相关拷打
后端