当前位置:  开发笔记 > 数据库 > 正文

如何在MongoDB中设置主键?

如何解决《如何在MongoDB中设置主键?》经验,为你挑选了5个好方法。

我想将我的一个字段设置为主键.我使用MongoDB作为我的NoSQL.



1> Sinan..:

_id字段是为mongodb中的主键保留的,应该是唯一值.如果您没有设置任何内容,_id它将自动填充"MongoDB Id Object".但是您可以将任何唯一信息添加到该字段中.

其他信息:http://www.mongodb.org/display/DOCS/BSON

希望能帮助到你.


这确实没有回答"如何将我的一个字段设置为主键",例如:我希望user_email作为用户集合中的键,但是如何将该字段设置为键和唯一

2> 小智..:

另一种方法是Indexes为您的收藏创建并确保它们是独一无二的.

您可以在以下链接中找到更多信息

我实际上发现这很简单,易于实现.


"对索引的唯一约束确保只有一个文档可以具有集合中字段的值.对于分片集合,这些唯一索引不能强制实现唯一性,因为插入和索引操作对于每个分片是本地的"--https:// docs. mongodb.org/manual/tutorial/enforce-unique-keys-for-sharded-collections/

3> Ali..:

在mongodb _id字段中保留主键.如果您没有在对象中定义它,并且还创建索引以确保性能,Mongodb将使用内部ObjectId值.

但你可以为_id设置自己独特的价值,而Mongodb将使用它而不是为你制作一个.即使您想使用多个字段作为主键,您也可以使用对象:

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

在创建这些ID时要小心,键的顺序(示例中的a和b)很重要,如果你交换它们,它被认为是一个不同的对象.



4> Nanhe Kumar..:

如果您想像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 trow写入错误时。

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

WriteResult({“ nInserted”:0,“ writeError”:{“ code”:11000,“ errmsg”:“ E11000重复键错误集合:student.members索引:user_id_1 dup键:{:1.0}”}})



5> Abhijit Chak..:

你可以使用简单 db.collectionName.createIndex({urfield:1},{unique:true});

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有