【发布时间】:2016-01-22 20:47:59
【问题描述】:
我有一个 Rails 应用程序,我的一张表在 mysql 中有一个大整数键。我希望从 mongodb 中的 mysql 表中存档一些数据,但不确定在 mongoid 中的字段语句中使用哪种类型来存储 orignal_id,我无意更改 mongoid 将生成的 id,我不是希望更改新表的 _id 字段。
【问题讨论】:
标签: mysql ruby-on-rails mongodb
我有一个 Rails 应用程序,我的一张表在 mysql 中有一个大整数键。我希望从 mongodb 中的 mysql 表中存档一些数据,但不确定在 mongoid 中的字段语句中使用哪种类型来存储 orignal_id,我无意更改 mongoid 将生成的 id,我不是希望更改新表的 _id 字段。
【问题讨论】:
标签: mysql ruby-on-rails mongodb
如果您使用 mongoid,您可以将字段定义为整数。整数是 Ruby 中 Fixnum 或 Bignum 类的实例对象。如果对 Fixnum 的任何操作超出其范围,则该值会自动转换为 Bignum。
【讨论】:
JavaScript 中数值的唯一选择是数字。可以安全表示的最大整数是:9007199254740991。根据 mysql 文档,最大的 bigint 是 9223372036854775807,如果无符号则为两倍。
如果保持保真度很重要,也许您应该将其保存为字符串。
【讨论】:
0s 填充到可以预期的最大位数。
我不使用 Rails,但 Rails 中可能也存在 NumberLong。这是 64 位整数的包装器。使用唯一索引,您可能会得到类似的结果,就像在 MySQL 中一样。
【讨论】: