• 欢迎访问极客公园网站,WordPress信息,WordPress教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入极客公园 QQ群
  • Git主题现已支持滚动公告栏功能,兼容其他浏览器,看到的就是咯,在后台最新消息那里用li标签添加即可。
  • 最新版Git主题已支持说说碎语功能,可像添加文章一样直接添加说说,新建说说页面即可,最后重新保存固定连接,演示地址
  • 百度口碑求点赞啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊http://koubei.baidu.com/s/gitcafe.net
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏极客公园吧

数据库篇

架构思维 站点默认 5年前 (2021-12-04) 3992次浏览 1个评论

如何排序查找ip字段

有这样一个需求,就是mongodb存储一堆ip地址,然后我们在取出来的时候,如何得到已经排序后的ip地址

首先直接排序肯定是不行的,比如192.168.204.12这个地址,存储在mongodb肯定是字符串的形式,然后字符串排序的话,对于开头的192,如果再来一个21开头的ip地址,21就比192大了,肯定不行。字符串排序也正是这样。我首先想到的是,直接查出来,然后用过java对字符串进行split然后转为int排序。但是这个方案很快就被我否决了。为什么?因为,mongodb在查询的时候用到了分页查询,那么查询的时候,就得全部查询出来,这样耗时非常的大。所以,只能在mongodb里面排序好了之后再次查询出来。好像是一个无解的问题。其实,思维扩散开了也就简单了,很简单加一个字段就行了。其实加字段也是有讲究的。这里加上一个long字段,然后在插入的时候,直接每一位数不足补0,比如上面的ip就是192168204120这样,这时查询的时候,直接根据long字段sort就可以了。


极客公园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:数据库篇
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(1)个小伙伴在吐槽
  1. 666非常的不错
    12021-12-04 20:24 回复