Если у вас есть существующий идентификатор (, скажем, из существующего набора данных ), тогда вполне нормально переопределить _id
с тем, который у вас есть.
... сохраняйте _id без изменений, поскольку это помогает индексировать и т. Д.
MongoDB индексирует поле _id
по умолчанию.Если вы начнете помещать целые числа в поле _id
, они будут проиндексированы, как и все остальные.
Таким образом, большинство RDBM предоставляют идентификатор "автоинкремента".Это хорошо для небольших наборов данных, но очень плохо с точки зрения масштабируемости.Если вы пытаетесь вставить данные на 20 серверов одновременно, как сохранить «автоинкремент» без изменений?
Обычный ответ - нет.Вместо этого вы используете такие идентификаторы, как GUID.В случае MongoDB, ObjectId
уже предоставлен.
Мне было интересно узнать о какой-либо лучшей стратегии, чтобы можно было использовать mongo objectId как более удобный для URL и легко запоминающийся ключ
Итак, проблема в том, что «легко запоминающийся» идентификатор на самом деле не связан с «хорошо масштабируемой базой данных».Когда у вас есть миллиард документов, идентификаторы на самом деле не «легко запоминаются».
Таким образом, вы должны найти компромисс здесь.Если у вас есть таблица, которая может стать очень большой, я предлагаю использовать ObjectId.Если у вас сравнительно небольшая таблица, которая не обновляется часто (например, таблица «поиска»), вы можете создать собственное автоинкремент.
Выбор действительно за вами.