Задать вопрос

Какое лучше выбрать поле для первичного ключа в MongoDB?

Нужно реализовать вэб-приложение на MongoDB. Одним из нюансов, с которым я столкнулся, оказался первичный ключ в документе. MongoDB по умолчанию предлагает своё уникальное поле "_id", которое в большинстве случаев удовлетворяет все потребности. Но при разработке REST API, к примеру обращение по адресу "/users/574e7d2d8c772c53d12200d5", вообще никак не смотрится, хочется что-то вроде этого "/users/id000000001", или этого "/users/1".
Возникает необходимость выбирать, либо воспользоватся рекомендациями в официальной документации, в которой описывается два варианта (счётчик и цикл), либо создавать собственное поле (что-то вроде "userID", или "id") со своими пользовательскими функциями. Кроме того, в официальной документации не раз упоминается, что именно с полем "_id" MongoDB будет себя чувствовать лучше всего, как при операциях, так и при масштабировании, поэтому хочется наделить удобством не в ущерб производительности.
Как лучше будет выйти из этой ситуации, или быть может уже существует "хорошая практика" по этому поводу (я искал в интернете, но конкретных решений не увидел)? Может стоит оставить автоматическое поле для внутренних нужд MongoDB, и добавить к этому документу дополнительное, по которому как раз таки будут происходить выборки?
  • Вопрос задан
  • 251 просмотр
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
@VekaVeka
Вам никто не мешает использовать свои ключи.
Монговский ставится автоматом, если вы не используете никакой свой ключ.
Ответ написан
Комментировать
@lega
Вы можете свой нумерованный идентификатор писать в _id. Но ObjectId работает быстрее*.
Так же можете делать дополнительное поле и индекс.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы