【问题标题】:Prettify MongoDb ObjectId美化 MongoDb ObjectId
【发布时间】:2015-03-13 14:59:27
【问题描述】:

我们正在开发存储大量照片的照片库。我们选择了 MongoDB 的 GridFS 进行图像存储。每件事看起来都很好。

但是每次用户必须删除照片时,我们都会考虑根据其"ObjectId" 删除特定照片,但是将 ObjectId 发送到客户端看起来很丑,因为它的长度。无法根据照片名称删除,因为它不是唯一的。

那么我们如何将prettifyObjectId 发送到客户端呢?

【问题讨论】:

  • 对谁来说“看起来很丑”?
  • 例如,您可以设计一种算法,该算法具有类似的低碰撞概率,同时又能保证美观。您的 gravatar 图标是您电子邮件哈希的漂亮版本。你可以把它转过来,每次都上传一张图片,而不是使用 id... 不,老实说:为什么用户甚至会看到 id?那不应该是一个ajax请求吗?

标签: mongodb mongoose gridfs objectid


【解决方案1】:

不确定这是否属于答案,因为它是主观的,但话说回来,问题也是如此:

如果不想涉及其他字段,可以更改id的编码。我认为 base64 看起来还不错:

55036ee50202b73c1a021897 -> NTUwMzZlZTUwMjAyYjczYzFhMDIxODk3

另一种选择是生成一个随机字符串并将其存储在文档中,这为您提供了很多外观可定制性。例如,您可以使用只有大写字符的 4 位代码,如 BUZQ。但是,请务必创建 unique index,以免意外创建重复的标识符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-12
    • 1970-01-01
    • 1970-01-01
    • 2013-01-17
    • 2014-10-07
    相关资源
    最近更新 更多