2017-01-25 2 views
0

Хорошо, поэтому я определял модель документа для базы данных MongoDB, и мои коллеги сказали мне, что мы не должны использовать функциональный идентификатор для поля «_id» и что мы должны использовать только автогенератор ObjectId ,Использование функционального идентификатора с MongoDB

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

Но я хочу быть уверен, так как я нуб NoSQL, так:

вы знаете какие-либо проблемы, которые могут возникнуть при наличии функционального идентификатора в качестве «_id» коллекции MongoDB ли?

Есть ли реальные преимущества использования автоматически созданного объекта ObjectId вместо функционального идентификатора для поля «_id»?

В случае, если мы хотим перейти из MongoDB в другую базу данных позже, может ли ObjectId быть преимуществом или недостатком?

ответ

1

В порядке появления:

  1. Знаете ли вы какие-либо проблемы, которые могут возникнуть при наличии функционального идентификатора в качестве «_id» коллекции MongoDB?

_id является уникальным полем для каждого документа внутри коллекции. Только проблема, которая может возникнуть с функциональным идентификатором в качестве поля _id, является дублированием и логически, сбой в момент ввода. По этой причине я хотел бы предложить следить за тем, как вы генерируете _id в своей функции, чтобы гарантировать ее уникальность. Пожалуйста, проверьте MongoDB documentation для получения дополнительной информации об ObjectID, поскольку ваш прецедент может извлечь выгоду из его использования для создания поля _id.

  1. Есть ли реальные преимущества использования автоматически созданного объекта ObjectId вместо функционального идентификатора для поля «_id»?

Это связанно с первым вопросом, и есть прямой ответ на это: авто генерироваться ObjectID в коллекции для любого вставленного документа позволит снизить риск повторяющихся записей, в отличии от функции сгенерированного ключа.

  1. Если мы хотим перейти из MongoDB в другую базу данных позже, может ли ObjectId быть преимуществом или недостатком?

Это зависит от характера базы данных, к которой вы переезжаете, и ее модели данных, поэтому нет прямого ответа на этот вопрос. MongoDB гарантирует, что документ в коллекции будет иметь уникальный _id, и вы должны знать об этом факте в момент перехода на другую систему баз данных.

Смежные вопросы