我即将编写基于Node.js和MongoDB的webapp。此webapp将用户存储在表Users中。我的问题很简单:既然用户名是唯一的,那么将_id字段类型从ObjectId更改为包含用户名的String是个好主意吗?
我认为它会更方便,并会以某种方式减少执行多项任务所需的请求数量。通常,如果我将用户名用作_id,则在其他表中对用户的引用将直接提供用户名,而不是在显示之前我需要转换为可理解名称的ObjectId。
此外,有两个不同的字段(ObjectId作为_id +用户名)需要两个索引来加速id或用户名上的查找,并且需要更多的数据库空间。
最后,如果我在分片环境中正确理解documentation,MongoDB将只能确保_id字段的唯一性。
但是,我可能会想念以后我会意识到(并且深感遗憾)的事情。
你能否对此有所了解?
谢谢!