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


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

8 58

8 ответов:

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

вы можете найти больше на следующем ссылке

Я на самом деле считаю, что это довольно просто и легко реализовать.

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

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

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

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

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

Если вы думаете, как СУБД вы не можете создать первичный ключ,первичный ключ по умолчанию _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 trow написать ошибка.

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

WriteResult({ "nInserted" : 0, "writeError" : { "код" : 11000, "errmsg": "e11000 duplicate key error collection: student.индекс членов: user_id_1 DUP ключ: {: 1.0 }" } })

http://docs.mongodb.org/manual/tutorial/create-an-auto-incrementing-field/

вы также можете проверить эту ссылку и автоматическим приращением

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

db. createIndex (, { уникальный: true })

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

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

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

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

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