A quick perusal of the source code shows that neither beforetrigger() or aftertrigger() are called if $filter is not null.
Is this intended or an oversight?
If the former, is the only way to get the triggers fired to reorganise my code to do a find() then iterate through the returned records one by one and do an erase(null)?