А зачем делать find? У вас может сложиться ситуация когда в один момент времени могут регистрироваться два юзера с одинаковым именем. И получается, что find обоит вернет false, а вот при вставке данных кто-то увидит ошибку. Лучше делать индекс по полю username и просто вставлять данные. Если данные вставились, то ок, если нет - значит невалидное имя пользователя. Получается у вас будет всегда выполняться один запрос, вместо двух.
По теме:
поиск по уникальному индексу сразу попадет на нужный шард безо всяких дополнительных сканов.