То, что вы хотите сделать, звучит больше как схема для реляционных баз данных с автоматическим приращением. Я бы порекомендовал другое решение.
Сначала у вас уже есть уникальный идентификатор. Он создается автоматически и находится в поле "_id". Для меня кажется, что вы хотите иметь UserID для построения отношений, но вы уже можете использовать значение в _id.
Другая причина, по которой вам нужны увеличенные идентификаторы, может заключаться в том, что вы создаете веб-приложение и, вероятно, хотите иметь "более хорошие" URL-адреса? Например. / user / 1 вместо /user/abc48df...?
Если это так, я бы предпочел создать уникальное ограничение для имени пользователя. И вместо идентификатора вы используете свое имя пользователя в URL "/user/john".
С этим ваши URL намного лучше. А для построения отношений вы можете использовать _id. И вы не столкнетесь с проблемами при получении наибольшего числа первым.
Чтобы создать уникальный индекс:
db.collection.ensureIndex({username: 1}, {unique: true})