Operator Scope of Action:
Operator First Added:
The find() operator returns List-type data of the $Path of all items matching query. Note that find does not de-duplicate its matches so any aliases in scope with be matched: to avoid the latter see section 'Filtering out aliases' below.
Conceptually find() is intended for where no item or group designator exists for use inline in action code. In most cases an agent is the likely and better alternative, noting that agents can also use the results of other agents. find() can also be thought of as a short way of writing:
$MyList = collect_if(all, expression, $Path);
where the expression is a query.
The find() operator omits notes for which $Searchable is false.
Filtering out aliases
The find() operator does not de-dupe results in the way an agent does. As find() collects $Path data, aliases both inside and outside agents may also match the query. Adding
!$IsAlias as a query term will scrub any aliases from matching a search.
Thus if getting unexpected results via find(), consider whether it is because some de-duping was (incorrectly) assumed and be prepared to sharpen the query terms accordingly.