Я хочу установить одно из моих полей в качестве первичного ключа. Я использую MongoDB как мой NoSQL.
Как установить первичный ключ в MongoDB?
Ответ 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
Ответ 7
http://docs.mongodb.org/manual/tutorial/create-an-auto-incrementing-field/
Вы также можете проверить эту ссылку и автоматическое увеличение поля _id
.
Ответ 8
Одним из способов достижения такого поведения является установка значения в _id
(которое зарезервировано для первичного ключа в MongoDB) на основе настраиваемых полей, которые вы хотите рассматривать как первичный ключ.
т.е. если я хочу employee_id
в качестве первичного ключа, то во время создания документа в MongoDB; присвойте значение _id
так же, как значение employee_id
.