Another potential solution would be to have two update models for a single document, one with upsert set to false along with filtering by the indexed fields + updatedAt less than the provided input and another with upsert set to true, filtering by the indexed fields and a $setOnInsert document.

I’m not very fond of this solution, but I find it better than using conditional updates on every field.