我想将我的一个字段设置为主键。我正在使用MongoDB作为NoSQL。
Answers:
_id
字段是为mongodb中的主键保留的,并且应为唯一值。如果您未对其进行任何设置_id
,则会自动用“ MongoDB Id对象”填充它。但是您可以在该字段中输入任何唯一信息。
附加信息:http://www.mongodb.org/display/DOCS/BSON
希望能帮助到你。
如果您像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,1,“ name”:“ nanhe”}
{“ _id”:ObjectId(“ 577f9d02d71d71fa1fb6f43b”),“名称”:“ kumar”}
当您尝试插入相同的user_id时,mongodb会引发写入错误。
db.members.insert({'user_id':1,'name':'aarush'})
WriteResult({“ nInserted”:0,“ writeError”:{“ code”:11000,“ errmsg”:“ E11000重复键错误集合:student.members索引:user_id_1 dup键:{:1.0}”}})
简单即可使用
db.collectionName.createIndex({urfield:1},{unique:true});
这是创建主键的语法
db。<collection> .createIndex(<键和索引类型说明>,{unique:true})
让我们假设我们的数据库有一个名为student的集合,而它的文档有一个名为student_id的键,我们需要将其作为主键。然后,该命令应如下所示。
db.student.createIndex({student_id:1},{unique:true})
您可以通过尝试将重复的值添加到学生集合中来检查是否将此student_id设置为主键。
倾向于此文档以获取更多信息 https://docs.mongodb.com/manual/core/index-unique/#create-a-unique-index
http://docs.mongodb.org/manual/tutorial/create-an-auto-incrementing-field/
您也可以检查此链接并自动增加_id
字段。
how to set one of my fields as primary key
无法解决问题:我希望user_email作为用户集合中的键,但是如何将该字段设置为键和唯一