this post was submitted on 11 Jul 2023
5 points (100.0% liked)

ObsidianMD

4100 readers
1 users here now

Unofficial Lemmy community for https://obsidian.md

founded 1 year ago
MODERATORS
 

How can I search for notes using the built-in search plugin, which supports regex, to search for notes that have no entry in specific keys within the frontmatter?

I am using templater and thus am using my frontmatter looks like this:

---

aliases:

publish: false

tag:

---

%%

date:: [[2023-07-11 Tue]]

parent:: [[XYZ]]

%%

Searching for "parent:: " works fine, but I want to find notes that do not have a parent note yet. For this I tried parent:: /$ as indicated here and here, but this and other variations like parent:: /\$/ do not yield any results.

Where am i going wrong?

top 4 comments
sorted by: hot top controversial new old
[–] [email protected] 6 points 1 year ago (1 children)

I don't think the built-in search has this capability, but you can try this dataview query:

LIST
WHERE !parent
[–] [email protected] 2 points 1 year ago

Works like a charm! I didn't know that I could query not just from tags but from any YAML key. Thank you!

[–] [email protected] 2 points 1 year ago (1 children)

If you're using regex I'm assuming you know of utilities like Regex 101 to check your syntax.

With JS-styled regex the entire statement is enclosed in slashes. /parent:: $/ should have the desired effect here.

I second DataView for these kinds of tasks as the plugin revolves around YAML frontmatter. I have a utility note called "notes with cleanable metadata" that has a bunch of these DataView queries that update in real time.

Good luck!

[–] [email protected] 2 points 1 year ago

/parent:: $/

Works perfectly! I thought I could start the regex in the middle of my text query. In hindsight, that of course makes no sense. Thank you!