[옵시디언] 자주 쓰는 데이터뷰 object 리터럴 3가지(contains,containsword,extract)

반응형
    반응형

    데이터뷰 object 리터럴

    데이터뷰는 general 리터럴이나 프론트매터에 있는 정보를 object로 받아들입니다.
    object 리터럴은 general 리터럴과 다르게 object에 있는 정보를 기반으로 함수처럼 어떤 값을 출력해주거나 나열해주는 역할을 해줍니다. sort,filter 같은 것도 object에 쓴다면 object 리터럴이라고 할 수 있습니다.
    이번 포스팅에서는 파일을 대상으로 자주 쓰는 object 리터럴을 소개할까 합니다.
    사실 프론트매터로 검색하는 것에 필요성을 못 느껴 아직 써보진 않았습니다.
     

    contains()

    contains은 해당 단어가 있으면 True로 나타냅니다. 단, 대소문자 구분을 합니다. 예를 들어, 아래와 같은 hello 문자가 있으면 다음과 같이 결과가 나타납니다. 참고로, 아래와 같은 문법은 실제 dataview에서는 작동하지 않습니다.

    contains('hello','lo') = True
    contains('hello','Lo') = False

    실제 데이터뷰에서 활용하는 방법은 where을 이용해 활용합니다. 예를 들어, 파일 이름(file.name)에 '파이썬' 이란 문자가 있는 파일만 가져와보겠습니다

    Table
    where contains(file.name,"파이썬")

     

     

    containsword(string|list,value)

    containsword는 정확한 문자만 찾아줍니다. 대신 대소문자는 무시합니다. containsword를 쓰면 아래와 같이 판정합니다.

    containsword("word","word") = true
    containsword("word","Word") = true
    containsword("words","word") = False

     
    제가 쓰는 경우는 보통 이런 경우입니다.
    Data라는 키워드를 가진 파일만 가져오려고 합니다. 그런데 contains로 Dataview, DataScience 도 가져옵니다.

    Table
    where contains(file.name,"Data")

     
    containsword를 사용하면 이런 혼동을 없애주고 정확한 문자로 이루어진 파일을 찾아줍니다.

    Table
    where containsword(file.name,"data")

    extract(object, key1, key2, ...)

    여러 필드의 내용을 추출해줍니다. 예를 들어, 파일 생성날짜와 수정날짜를 확인하려면 아래와 같이 합니다.

    Table extract(file,"ctime","mtime")
    

    마치며

    옵시디언에서 데이터뷰를 하는 이유는 색인이라서 더 많은 object 리터럴이 있지만 아직까지 한번도 써본 적도 없고 필요성도 느끼지 못했습니다.
    만약 다른 object 리터럴을 쓰고 싶다면 아래 가이드 사이트에서 확인하시기 바랍니다.
    https://blacksmithgu.github.io/obsidian-dataview/reference/functions/#containswordliststring-value

    Functions - Dataview

    Functions Dataview functions provide more advanced ways to manipulate data. You can use functions in data commands (except FROM) to filter or group or use them as additional information like TABLE columns or extra output for LIST queries to see your data i

    blacksmithgu.github.io

     
    함께 보면 좋은 글
     

    옵시디언 데이터뷰 필드(Field) 총정리

    데이터뷰 Field 총정리 데이터뷰 Field에 대해 따로 정리합니다. 필드가 별건 아닌데 헷갈리기도 하고 쿼리문은 오류가 뜨면 왜 안되는지 명확하게 알려주질 알아서 애를 먹습니다. 단어 의미를 정

    seong6496.tistory.com

     

    [옵시디언] 데이터뷰 General 시간 리터럴 정리표

    리터럴(literal)데이터뷰는 쿼리문으로 진행됩니다. where을 쓸 때 시간 표현 기준이 필요한데 어떤 기준을 표현하는 것들을 리터럴이라고 합니다. 예를 들어, 올해 첫날(2024-01-01)을 데이터뷰에 표

    seong6496.tistory.com

     

    옵시디언 데이터뷰 기본문법

    옵시디언 데이터뷰 기본문법 옵시디언을 쓰시는 분들은 제2의 뇌라고 불리는 제텔카스텐 노트법을 구현하기 위해서 쓰실 겁니다. 제텔카스텐을 구현하면서 검색을 잘할 수 있게 해야 하는데 데

    seong6496.tistory.com

     

    댓글

    Designed by JB FACTORY

    ....