I'm assuming we're manually assembling this query because the constructUpsertQuery doesn't support TTL ? Is it worth making that function support it?