Javascript 存储语言(ISO 639)为数字

Javascript 存储语言(ISO 639)为数字,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我正在使用MongoDB数据库,到目前为止,我已经将一些信息存储为数字而不是字符串,因为我认为这样会更有效。例如,我存储国家跟踪和性跟踪。但到目前为止,我还没有找到一个类似的语言标准,似乎没有一个匹配的数字代码列表 这样做的正确方式是什么?我应该只使用字符串代码吗 谢谢 如果你喜欢这些数字,你可以使用它们,尽管它们“只”代表国际电联成员国(维基百科称为193个国家)。但是,嘿,他们有索马里和巴勒斯坦,所以这是一个很好的暗示,说明这是多么全球性 然而,以编码格式(这里的数字)存储所有内容意味着在请

我正在使用MongoDB数据库,到目前为止,我已经将一些信息存储为数字而不是字符串,因为我认为这样会更有效。例如,我存储国家跟踪和性跟踪。但到目前为止,我还没有找到一个类似的语言标准,似乎没有一个匹配的数字代码列表

这样做的正确方式是什么?我应该只使用字符串代码吗


谢谢

如果你喜欢这些数字,你可以使用它们,尽管它们“只”代表国际电联成员国(维基百科称为193个国家)。但是,嘿,他们有索马里和巴勒斯坦,所以这是一个很好的暗示,说明这是多么全球性

然而,以编码格式(这里的数字)存储所有内容意味着在请求任何数据时(翻译表存储在RAM中而不是DB的ROM中)都会执行解码步骤。可能是在CPU非常宝贵的服务器上,但您可能已经将问题转移到了客户机上,在这个过程中过度使用宝贵的、时间关键的服务器-客户机链接

因此,回到90年代,当40MB硬盘价格昂贵时,这可能会很有趣。今天,存储数据的成本与处理数据的成本并不在1。。。不计算思考和实现转换所需的时间。我认为这种效率水平实际上会扼杀效率


编辑:哎呀,我刚刚意识到我误解了国家/语言问题(这个动词存在吗?)。你已经整理好的国家,我的坏。我不知道有多少种语言。但是,文章的第二部分可能仍然是相关的…

如果您追求原始性能和/或想要实现非常小的数据大小,我建议您使用来自的三个字母(更高粒度)或两个字母(更低粒度)代码

据我所知,在我所知的任何编程语言中都没有这个标准的助手或任何东西,因此您需要构建自己的翻译器(代码全名),然而,这应该是微不足道的


正如其他人已经提到的,您必须自己评估与此相关的成本(例如,无法简单地查看数据并立即理解数据)。我个人确实建议保持数据大小较小,因为与处理数字(或更短的字符串)相比,BSON解析和字符串操作非常昂贵。在处理小数据集时,这不会产生明显的差异。然而,如果您需要翻阅数以百万计的文档,或者像这样进行更多的优化,则可能会成为关键任务。

第二部分,列出了一些常见的语言代码方案,其中非纯数字方案。如果OP真的需要一个数字,那么也许可以将ISO 639-1字符视为两字节整数?谢谢,非常有趣。因为我已经对每个用户的区域设置进行了一层翻译,所以我可能会按照2或3个字母的标准存储值。谢谢。我可能会走这条路。我认为像这个npm包这样的东西可以进行转换,我可能需要根据用户的语言环境进行调整。