옵시디언 데이터뷰, Where 사용법 및 예시

이번 글에서는 옵시디언 데이터뷰의 핵심이라고 할 수 있는 WHERE 명령어에 대해 알아본다.

옵시디언 데이터뷰,WHERE의 역할

기본적으로 FROM과 WHERE는 무수히 많은 노트를 필터링 해주는 명령어이다.
그 중에서도 FROM은 주로 노트의 위치나 태그를 특정하는 역할이며,
WHERE는 각각의 노트를 특정 기준에 따라 걸러내 주는 역할이다.

개별 노트를 조건에 따라 필터링하기 때문에 FROM 보다 더 세세한 접근이 가능하다.
WHERE는 엑셀의 IF문과 비슷해서 사용자의 역량에 따라 유용성이 크게 달라진다.
조건 작성에 사용되는 기능들의 학습이 필요할 수 있으며, 사전에 개별 노트의 Properties를 잘 작성해 두어야 쓸 수 있는 기능들도 있다.

본 글에서는 WHERE의 기본적 사용 방법과 간단한 예시들을 소개해 본다.


데이터뷰 WHERE 사용법 및 알아야 할 내용

기본적인 사용법은 아래와 같다.

TABLE
WHERE 조건 작성

WHERE의 뒷 부분에 특정 노트를 구분해 낼 수 있는 조건을 입력하면 된다.

따라서, 얼마나 다양한 조건을 DATAVIEW 문법으로 풀어낼 수 있을 지가 관건이다.


다양한 조건 연결하기

WHERE 또한 FROM과 마찬가지로 다양한 조건을 연결하여 사용할 수 있다.

TABLE 
WHERE 조건1 AND (조건2 OR 조건3) AND NOT (조건4)

위와 같은 형태로 다양한 조건의 조합이 가능하다.


Properties 활용

DATAVIEW에서는 Properties의 적극 활용이 필요하다.
사람에 따라 “메타데이터”, “프론트메타”라고 부르기도 한다. 본 글에서는 옵시디언 기본 설정에 따라 Properties로 명명하도록 하겠다.

옵시디언 Properties 작성 예시
옵시디언 Properties 작성 예시

참고로 Properties는 각 노트의 성격을 규정하기 위해 작성하는 내용으로, 문서 시작 위치에서 “-“를 세 번 입력하면 나타난다.

위에서 연습 삼아 작성한 Properties를 WHERE로 활용해보면 아래와 같다.

TABLE
WHERE 진행 = "진행" and 메모 != "연습", 문서번호 > 200
TABLE
WHERE 진행 = "진행" and 메모 != "연습" and 문서번호 > 200

연산자 활용

위와 같이 WHERE 명령어에서는 연산 부호를 적절히 활용해야 한다.

등호

  • = (같다), != (같지 않다)

부등호

  • > , < , >= , <=

WHERE 활용 예시

예시 1. 이름에 특정 단어가 반복되어 들어가는 경우.

본인이 아래와 같이 파일 제목을 작성하고 있다고 가정해보자.

옵시디언 사용예1
옵시디언 WHERE 사용 예1

그 중 옵시디안을 주제로 하는 노트들이 정리된 페이지를 작성하고 싶다면, DATAVIEW를 다음과 같이 작성 할 수 있다.

LIST
WHERE contains(file.name, "옵시디안")
WHERE file.name != this.file.name
옵시디언 WHERE 사용 예2
옵시디언 WHERE 사용 예2

모음 파일 자체도 WHERE 조건에 해당하기 때문에 이를 제외하기 위해 WHERE file.name != this.file.name을 추가했다.


예시2. 일주일 이내에 작성한 파일만 보고 싶은 경우

최근에 작성한 파일만 보고 싶은 경우에는 아래와 같은 구문을 활용할 수 있다.

LIST
WHERE file.ctime>= date(today) - dur(7 day)

한번 작성한 노트를 지속하여 수정해서 쓰는 경우에는 file.ctime을 file.mtime으로 바꿔서 쓰면 된다.

날짜는 최근이 “큰 값”이므로, 위의 구문을 굳이 해석해보면, “오늘(date(today))로부터 7일 이전(-dur(7 day))보다 작성 시간(file.ctime)이 최근(>=)인 노트를 찾아줘”가 되겠다.

물론 dur()에 들어가는 값은 변경 가능하다. 1 day는 물론, 10 month나 20 hour를 넣어도 잘 작동한다.


결론

Where의 기본적인 사용 방법에 대해 알아보았다. 다음 글에서는 Where의 활용도를 높이기 위한 Implicit Fields에 대해 알아보고, 활용 방안에 대해 고민해 보도록 하자.


관련 다른 글 보기

옵시디언 팁, 외부 폴더 링크 붙여 넣기
옵시디언 데이터뷰, FROM부터 공부해보자
옵시디언 데이터뷰, 직접 작성하고 활용하기 (Dataview Functions, Metadata)
옵시디언 이미지 플러그인, Image converter, 이미지 파일을 사용한다면 필수 플러그인

댓글 남기기