首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将MongoDB对象Id编码为更短的格式

将MongoDB对象Id编码为更短的格式
EN

Stack Overflow用户
提问于 2016-12-05 08:29:31
回答 1查看 962关注 0票数 1

如何将MongoDb的ObjectId的12字节BSON字符串编码成更短的格式.从24长线到8或6?

我已经尝试过base64编码,目前我使用的是ObjectID的普通字符串值

要求

  1. 较短长度4-8符号
  2. 双向编码

字符串将用作唯一的短url。

ObjectId -> http://bla.com/{encode(ObjectId.toString('ascii'))} -

和反向操作

http://bla.com/gf8a4as1 -> Model.findById(decode(gf8a4as1)).lean().exec().then((model) => res.json(model)

EN

回答 1

Stack Overflow用户

发布于 2017-01-19 18:39:20

您想要将12个字节可逆地打包成4-8个符号吗?这是不可能的,除非您使用的字符大于1字节(这可能是次优的urls)。

最好的选择是使用base64的变体(例如,RFC4648的标准urlsafe变体,以-_为例),它将给您精确的16个符号。否则,考虑使用较短的ids (例如,序列号?)如果你不需要全局唯一性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40969997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档