Nested Frontmatter returning list when querying for parent.child if parent is a list

Author: keiraricheyCreated Apr 20, 2026Updated Jun 4, 2026
Labelsbug

What happened?

With the following Frontmatter:

---
parent:
  - child1: abc
  - child2: def
---

When querying inline or in a block, the expected return value for this.parent.child1 is "abc", and this.parent.child2 = "def".

However, `=this.parent.child` will return ["abc", -], and `this.parent.child2` will return [-, "def"]. As a result, to get the value for parent.child1 from the Frontmatter, the expression `=this.parent.child1[0]` is needed. For parent.child2, `=this.parent.child2[1]` is needed.

In a block query, using the following: ```dataview TABLE children.child1, children.child2 FLATTEN this.parent AS children WHERE file.link=this.file.link ```

...results in two rows, the first row being ["abc",-] and the second row being [-,"def"], rather than the expected result of one row ["abc","def"]

Unsure if this is a bug or intended behaviour, but I'm having a hard time understanding the use case if it is intended behaviour.

DQL

```dataview TABLE this.parent.child1, this.parent.child2 WHERE file.link = this.file.link ```

```dataview TABLE children.child1, children.child2 FLATTEN this.parent AS children WHERE file.link=this.file.link ```

`=this.parent.child1` `=this.parent.child2`

JS

javascript

Dataview Version

0.5.68

Obsidian Version

1.12.7

OS

Linux

Source: blacksmithgu/obsidian-dataview