необходим всего 1 индекс по полю string, то можно использовать _id. Скажем, если я хочу проиндексировать username в коллекции пользователей, почему бы username не писать в _id?
Однако ObjectId жрет только 12байтную строку или 24hex.
Как решить эту проблему? Понятное дело, что длина username должна и будет произвольной (ограничено). У меня была идея выбрать какую-нибудь хэш функцию, чтобы была супербыстрой и наименее всего подвержена коллизиям. К тому же хэш функция должна возвращать 12 байт или 24 16ых числа. Или не через хэш функцию, а как то по другому...
в _id можно пихать все что угодно, примитив точно
Сделать отдельный индекс по полю с именем
Обсуждают сегодня