我正在开发一项宁静的服务。根据RFC 7231,在使用POST创建资源时返回位置URL是一种很好的做法。
由于我使用mongodb,我已经为我的资源(BSON _id)创建了一个本机ID,我应该在资源位置url中使用这个自动处理的复杂字符串作为id吗?或者我最好创建自己更简单的ID?
答案 0 :(得分:0)
Mongo的ObjectId并不复杂,我认为没有理由不使用它。使用自动生成的_id的一个优点是该字段始终被索引。另一个原因是Mongo会在所有场景中生成唯一ID,而无需实现它。
如果你添加自己的附加id字段,你将有两个Mongo必须维护的索引(因为你可能希望能够快速找到文档,例如基于id的GET请求)。
请注意,您不需要使用Mongo自动生成的ObjectId,您的应用程序可以生成唯一ID(例如运行整数),为您提供更简单的id和内置_id索引的利用率。