Skip to content

Latest commit

 

History

History
13 lines (7 loc) · 1.95 KB

关于MongoDB中64位整型存储解决方案的经历.md

File metadata and controls

13 lines (7 loc) · 1.95 KB

关于MongoDB中64位整型存储解决方案的经历

image

前三四天里一直都被mongodb的64位整型存储问题纠缠着,由于不是领导,自然开发一般都是普通配置的PC机,然后装的是window7系统,算好了还能装个64位的。就在本地取出存储在MongoDB的整型数据的时候就开始报错了。

MongoCursorException: Can not natively represent the long 1234567890123456 on this platform

之前从未遇到这样的问题,后来在网上寻找资料才大概知道什么原因,相关参考资料并不多,但这篇文章http://my.oschina.net/kisswu/blog/122338里详细讲解了这个上面这个错误的缘由去脉。解决的方案实在是不怎么喜欢,毕竟当我发现这个问题的时候,我的开发进度都快接近尾声了。当然在正式服务器上是不会有这样的问题。但很多开发都是需要在本地调试修复等,要是只能线上测试如果只是一点点还没什么大不了,但恰恰相反很多问题要解决。

接着,以为只是window的php的MongDBdll文件扩展没找到合适的,网上找到官方的扩展文件,试了所有对应PHP版本的扩展依旧没解决问题,因为跟我协同开发的同事他的本地是没有这个问题的,我就也让他把他的dll文件发给我,解决试了大半天依旧不行。

最后算是知道了为什么大牛都不喜欢window系统了,很多优秀的服务或功能都没在window有,只能怪window不开源。那这样是不是真的只能本地改好传到线上才能调试了?,最后发现用本地MongDB数据库就不会出现上面提到的错误,好在MongDB有window版本的。怎么之前就没想到呢?幸好有同事提醒,当然这样也是有缺陷的,就是本地和线上的数据是不同步的。但这样总比要我重新去修改所有代码好。