【问题标题】:Best way to save and perform sorting of an IP in a mongo db?在 mongodb 中保存和执行 IP 排序的最佳方法?
【发布时间】:2020-02-17 13:47:41
【问题描述】:

我在这里寻找几个问答,以了解在 mongo db 中保存和执行 IP 排序的最佳方法,但我无法找到解决方案。 首先:如何保存IP?细绳?诠释?其他? 第二:一旦保存(例如,假设我的 IP 从 10.1.0.2010.1.1.255),我必须在我的数据库中获取“最高”IP 并递增一个一个的新的。我该怎么做?我的意思是,检索它的最佳方法是什么?执行是否正确

this.model.findOne().sort({"staticIp": -1}).exec();

【问题讨论】:

    标签: javascript mongodb typescript mongoose ip


    【解决方案1】:

    我当然没有完整的解决方案,但将 ip 保存为数组可以吗? 因为 ip 很容易放入数组中:

    var ip = [127,0,0,1];
    

    这样您就可以对第一个元素进行排序,然后如果第一个元素相同,则对第二个元素进行排序,依此类推,直到将它们全部排序。

    如果有更多 mongodb 知识的人可以对此提供帮助,我们将不胜感激!

    【讨论】:

      【解决方案2】:

      (仅限 IPv4 信息,请参阅有关 IPv6 讨论的链接) 因此,在大多数情况下,没有掩码 1-32 的 IP 地址毫无价值。 这为您提供了有关主机所属子网的信息,并允许您按子网分组(取决于您的 c 用例)

      现在您可以将它们存储为 32 位无符号整数

      • int 134744072 = 8.8.8.8

      或作为一个

      • 点分十进制 8.8.8.8

      或二进制字符串

      • 00001000 00001000 00001000 00001000

      但在大多数系统中,没有掩码的 IP 地址就像没有街道地址的门牌号码。所以有了这个掩码,你可以做一些网络数学运算,得到同一网段上的所有主机,看看你还剩下多少空闲地址。

      imo,使用无符号整数是要走的路,然后是第二个整数来存储掩码。然后可能使用排序插入/删除。

      我会在 similar topic 上向您指出这个很好的答案

      祝你好运!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-02-19
        • 2014-05-30
        • 1970-01-01
        • 2015-04-30
        • 1970-01-01
        • 2015-12-09
        • 2022-06-16
        • 1970-01-01
        相关资源
        最近更新 更多