gpt4 book ai didi

mongodb - Doctrine ODM 节省大量资金

转载 作者:可可西里 更新时间:2023-11-01 09:50:39 29 4
gpt4 key购买 nike

这可能是一个愚蠢的问题,但我正在努力在 mongoDB 文档中保存一个大数字。

基本上,我想保存一个可以大于 max int 值的数字。因此,我将我的文档字段声明为 @Field(type="float")

现在的问题是保存数字会导致错误。我也试过简单地使用 @Integer 但数字减少到 2147483647(这是 32 位系统的最大 int 值)。

所以我尝试了最后一个解决方案,将我的号码保存在一个字符串中。这工作正常(至少它在数据库中看起来是正确的),但返回文档并执行 echo $number 返回 2147483647

有人解决这个问题吗?我做错了什么?

最佳答案

最后一件事:该值显示为 max-int 值,因为 PHP 将其视为数字。你可以看到更多关于这个过程的信息here .

mongodb 扩展本身确实支持 32 位系统上的 64 位整数,使用 MongoInt64 ,但是 Doctrine ODM 在从 MongoDB 返回时不会以不同方式处理 32 位或 64 位整数,所以你永远不会看到 64 位值作为 MongoInt64 类返回,即使PHP 可以支持它——但它不能:)

所以,我会说你的选择是要么将值强制为字符串 (echo (String) $number;),要么尝试解决为什么你在尝试保存时出错作为 float 的值。有精issues在 php 中使用 float ,无论如何都无法以这种方式存储数字。

希望这对您有所帮助!

关于mongodb - Doctrine ODM 节省大量资金,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34687439/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com