Copied to Clipboard
And when the path crosses a hasMany relationship, you get an array back:
{
name: 'categoryTitles',
type: 'text',
hasMany: true,
virtual: 'categories.title', // => ['Tech', 'News', 'Updates']
}
The field shows up in your API responses and in your generated types — but it never takes up a column. Perfect for flattening relationship data without denormalizing your schema.