如何将MongoDb的ObjectId的12字节BSON字符串编码成更短的格式.从24长线到8或6?
我已经尝试过base64编码,目前我使用的是ObjectID的普通字符串值
要求
字符串将用作唯一的短url。
ObjectId -> http://bla.com/{encode(ObjectId.toString('ascii'))} -
和反向操作
http://bla.com/gf8a4as1 -> Model.findById(decode(gf8a4as1)).lean().exec().then((model) => res.json(model)
发布于 2017-01-19 18:39:20
您想要将12个字节可逆地打包成4-8个符号吗?这是不可能的,除非您使用的字符大于1字节(这可能是次优的urls)。
最好的选择是使用base64的变体(例如,RFC4648的标准urlsafe变体,以-和_为例),它将给您精确的16个符号。否则,考虑使用较短的ids (例如,序列号?)如果你不需要全局唯一性。
https://stackoverflow.com/questions/40969997
复制相似问题