如何在MongoDB中设置主键 mongodb中存储文档的_id key作用
如何在MongoDB中设置主键
可以设置唯一索引解决,比如"name"字段不能重复,可以设置"name"字段为唯一索引。 db.things.ensureIndex({“name”:1},{unique:true})
mongodb中存储文档的_id key作用
MongoDb支持的数据库类型中,_id是其自有产物。下面简单介绍下_id key。
存储在MongoDB集合中的每个文档(document)都有一个默认的主键_id,这个主键名称是固定的,它可以是MongoDB支持的任何数据类型,默认是ObjectId。在关系数据库schema设计中,主键大多是数值型的,比如常用的int和long,并且更通常的是主键的取值由数据库自增获得,这种主键数值的有序性有时也表明了某种逻辑。反观MongoDB,它在设计之初就定位于分布式存储系统,所以它原生的不支持自增主键。
以上参考:http://coderschool.cn/1732.html
总结
_id key可以用户分配,也可以由MongoDB自动分配,一般采用自动分配。
如果未使用_id作为分片key,则应用程序或客户端层要负责保证_id为唯一的,对于分配存在重复_id会有问题。
更新一个document 不会造成_ID被修改。