关于mongo使用上的一些问题

今天在写一个排序功能的时候,将排好序的id字段拿出来然后组装成了一个list直接放入了redis,这时候我想将排好序的列表拿出来然后跟数据库中排好序的id对比一下,测试功能是否实现了,然后我从redis客户端工具里面将我那个key所对应的value拿出来,这时候我没有一个个对比,我直接拿了第一的id,用客户端工具去库里查,看看是否查到,这时候问题来了:我用那个id查到了那条数据并且排序也是对的,但是我仔细对比了一下发现查询的id字段和数据本身的字段对不上,两者相差了2(long型),然后我用其他的long型字段都测试了一下发现全部存在这个问题,在原本数据的4-->-4范围内都可以查到那条数据(假如在这个范围内还有其他数据的字段是否都能查到??懒一下,没有测试);

        那么有一个问题来了,我在程序里的使用会不会也会存在这个问题呢?

我测试了一下是正常的,然后百度了一下,发现long型的字段搜索必须要加上NumberLong("*******"),这样才可以精确的匹配到,这里也还存在着细节问题,如果在括号中不用上双引号的,那么还是一样;

       这时,我发现另一个问题出来了,为什么我存入redis的数据从客户端工具拿出来后和库里的对不上,long型数据末尾全部变成了0,我想这可能是序列化的问题吧,我之前是从客户端直接复制出来的,然后我到程序里用代码去取,debug了一下发现取出来的数据也是正常的;

总结:使用mongo客户端工具在查询long型字段时需要注意用NumberLong("*******"),如果不用的话,那么在原来数据的4-->-4范围内也可以查询到,猜测:在使用mongoTemplate查询long型字段时,很可能他给我们做了这个封装,所以在查询时不存在我之前说的问题;

redis中的问题,在用客户端拿出数据做对比时,可能数据与库中的不一样,那么很可能是序列化的问题,可以在代码中测试一下是否是因为序列化;

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,125评论 2 89
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,463评论 19 139
  • 大妞妞不止一次跟我唠叨,她没有坐过飞机,她没有去过南方,她没有在冬天里穿夏天的衣服,吃冰激淋。 突然就决定,要不带...
    山东大妞0525阅读 2,144评论 0 0
  • 茶余饭后 雅兴所致 诗意幽发 落笔勃然 余音绕梁 荡漾入耳 勾勒乡思 时不久矣 睡意渐浓 如若美梦 犹如晚秋 淅淅沥沥
    化骨真人阅读 1,254评论 0 1
  • 01 推开明亮的玻璃门,我从这所创业公司走出,内心没有任何知觉,只有一个声音催促着我,快走。 从走入这座高大上的C...
    懒癌先生_阅读 4,155评论 8 21