Does cursor.hint(index) always return the data in the same order?

In some scenarios, we need to use find().min().max().hint(index) to specify indexBounds for query.

When the data set is relatively large, it may not be done at once. When there is no complete reading due to some errors, we need to restore the cursor and prevent repeated reading of the read data.

A simple way is to record the number of records that have been read, then reopen the cursor and skip the number of records that have been read.

find().min({ f1: 10000, f2: 10000 })
        .max({ f1: 100000, f2: 1000000 })
        .skip(numbers have been read)
        .hint({ f1: 1, f2: 1})

For this to work properly though MongoDB needs to return records in the exact same order for every query.
I would like to confirm that does cursor.hint(index) always return the data in the same order, or we need to explicitly declare a sort() to ensure the same order.

find().min({ f1: 10000, f2: 10000 })
        .max({ f1: 100000, f2: 1000000 })
        .skip(numbers have been read)
        .hint({ f1: 1, f2: 1})
        .sort({ f1: 1, f2: 1}) // Is this sort necessary?

The only thing that guaranty order of document is sort.