Подтвердить что ты не робот

Как установить первичный ключ в MongoDB?

Я хочу установить одно из моих полей в качестве первичного ключа. Я использую MongoDB как мой NoSQL.

4b9b3361

Ответ 1

Поле

_id зарезервировано для первичного ключа в mongodb, и это должно быть уникальное значение. Если вы не установите ничего в _id, он автоматически заполнит его "Объектом Id MongoDB". Но вы можете поместить любую уникальную информацию в это поле.

Дополнительная информация: http://www.mongodb.org/display/DOCS/BSON

Надеюсь, что это поможет.

Ответ 2

Другим способом является создание Indexes для вашей коллекции и убедитесь, что они уникальны.

Дополнительную информацию можно найти на следующей ссылке

Я на самом деле нахожу это довольно простым и легким в реализации.

Ответ 3

В поле mongodb _id зарезервировано для первичного ключа. Mongodb использует внутреннее значение ObjectId, если вы не определяете его в своем объекте, а также создаете индекс для обеспечения производительности.

Но вы можете поместить свое собственное уникальное значение для _id, и Mongodb будет использовать его вместо того, чтобы сделать его для вас. И даже если вы хотите использовать несколько полей в качестве первичного ключа, вы можете использовать объект:

{ _id : { a : 1, b: 1} }

Просто будьте осторожны при создании этих идентификаторов, которые имеют порядок ключей (a и b в примере), если вы их обмениваете, это считается другим объектом.

Ответ 4

Просто вы можете использовать db.collectionName.createIndex({urfield:1},{unique:true});

Ответ 5

Если вы думаете, что RDBMS не можете создать первичный ключ, первичный ключ по умолчанию - _id. Но вы можете создать Уникальный указатель. Пример ниже.

db.members.createIndex( { "user_id": 1 }, { unique: true } )

db.members.insert({'user_id':1,'name':'nanhe'})

db.members.insert({'name':'kumar'})

db.members.find();

Выход ниже.

{ "_id": ObjectId ( "577f9cecd71d71fa1fb6f43a" ), "user_id": 1, "name": "nanhe" }

{ "_id": ObjectId ( "577f9d02d71d71fa1fb6f43b" ), "name": "kumar" }

При попытке вставить одну и ту же ошибку записи пиктограммы user_id mongodb.

db.members.insert({'user_id':1,'name':'aarush'})

WriteResult ({    "nInserted": 0,    "writeError": {        "код": 11000,        "errmsg": "Коллекция ошибок с повторяющимися ключами E11000: student.members index: user_id_1 dup key: {: 1.0}"   } })

Ответ 6

Это синтаксис создания первичного ключа

дБ & л.; collection > .createIndex(< ключ и спецификация типа индексa > , { unique: true})

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

db.student.createIndex({student_id:1},{unique:true})

Вы можете проверить, установлен ли этот student_id в качестве первичного ключа, добавив дублирующее значение в коллекцию student.

предпочитайте этот документ для дальнейшей информации https://docs.mongodb.com/manual/core/index-unique/#create-a-unique-index

Ответ 8

Одним из способов достижения такого поведения является установка значения в _id (которое зарезервировано для первичного ключа в MongoDB) на основе настраиваемых полей, которые вы хотите рассматривать как первичный ключ.
т.е. если я хочу employee_id в качестве первичного ключа, то во время создания документа в MongoDB; присвойте значение _id так же, как значение employee_id.