【发布时间】:2011-12-20 03:07:45
【问题描述】:
我在 Mongomapper 中找不到 Integer 的限制数。 它可以在 MongoDB 中自动将“大整数”转换为 LongInt 吗?
【问题讨论】:
标签: ruby-on-rails mongodb mongomapper
我在 Mongomapper 中找不到 Integer 的限制数。 它可以在 MongoDB 中自动将“大整数”转换为 LongInt 吗?
【问题讨论】:
标签: ruby-on-rails mongodb mongomapper
bson 库为您/mongomapper 处理这个问题。如果您尝试序列化的东西是 bignum/fixnum,它会检查它是否适合 4 字节或 8 字节整数并相应地对其进行编码。它实际上检查了该值,因为 Fixnum 限制与 mongo 具有的 4 字节/字节边界不匹配。
驱动对应位为here
【讨论】:
整数数据类型取决于您选择的 Mongo 安装方式。如果你选择 32 位,整数会上升到 32 位,所以大约是 20 亿。建议选择 64 位安装。
【讨论】:
MongoDB 以 BSON 格式存储其数据(即二进制 JSON)。 The specification for BSON 支持 32 位和 64 位整数。
这里的关键是您的 Ruby 驱动程序和配置。
【讨论】: