I see that `DocumentPersister::prepareQuery()` adds the filter criteria, but I can't find a call to that from the ODM Query object. Can you point me to where the field preparation takes place? Is it when `Builder::getQuery()` calls `Expr::getQuery()`?

I wonder if the Query object is the right place to do all of the preparation -- I imagine most people use the builder but technically there isn't a requirement to do so. In any event, double preparation and injection of filter criteria is no good.