take field-order into account when checking for existence of compound indexes
take index-direction (ascending, descending)  into account when checking for index-existence
minor simplification (use some() instead of !none())