Есть ли недостатки использования уникальной строки вместо MongoId в качестве _id? - PullRequest
1 голос
/ 03 декабря 2011

У меня есть коллекция пользователей, очевидно, что все логины уникальны, и на данный момент я не могу придумать причину не использовать их вместо сгенерированного по умолчанию MongoId. Есть ли недостатки этого подхода?

Ответы [ 2 ]

1 голос
/ 03 декабря 2011

Да, это звучит совершенно нормально. ObjectIds могут быть полезны при создании шардинга, предоставляют встроенную временную метку и, вероятно, более эффективны для индексирования и хранения, поскольку все они имеют одинаковый размер. Тем не менее, если для вашего приложения более логично использовать логин, это должно сработать.

0 голосов
/ 03 декабря 2011

Если ваши логины также являются адресами электронной почты, как это часто бывает, в какой-то момент ваши пользователи изменят свой адрес электронной почты, что вызовет проблемы, если вы использовали его как _id.Даже если вы не используете адреса электронной почты для входа в систему, вы все равно можете разрешить пользователям изменять свое имя пользователя.

Но я хотел бы задать вопрос, а не есть ли недостатки использования логина как _id,есть: есть ли недостатки в использовании стандартного поля ObjectId?Что вы надеетесь получить, используя вместо этого логин?

Как указывает Тайлер Брок в своем ответе, использование ObjectId дает вам некоторые дополнительные преимущества, так как есть некоторая дополнительная информация, закодированная в ObjectId, такая какметка времени и идентификатор экземпляра MongoDB, который создал документ.Может пригодиться когда-нибудь.

По моему опыту, если и иногда, то даже , если есть действительно веская причина, чтобы поступить иначе, обычно лучше следовать потоку любой технологии, которую выиспользование.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...