我即将编写一个基于Node.js和MongoDB的webapp . 此webapp将用户存储在表Users中 . 我的问题很简单:因为用户名是唯一的,将_id字段类型从ObjectId更改为包含用户名的String是个好主意吗?

我认为它会更方便,并会以某种方式减少执行多个任务所需的请求数量 . 通常,如果我使用用户名作为_id,则在其他表中对用户的引用将直接提供用户名,而不是在显示之前我需要转换为可理解名称的ObjectId .

此外,具有两个不同的字段(ObjectId作为_id用户名)将需要两个索引来加速在id或用户名上的查找,并且在数据库中需要更多空间 .

最后,如果我在分片环境中正确理解documentation,MongoDB将只能确保_id字段的唯一性 .

但是,我可能会想念我后来会发现(并深感遗憾)的事情 .

你能否对此有所了解?

谢谢!