在mongodb聚合期间拆分字符串

时间:2016-09-06 05:50:56

标签: mongodb split ip aggregation-framework

我在MongoDB中收集了以下文档:

{_id : "...", ip : "0.1.10.200", item : "..."}

ip是IP v4地址。 我需要通过IP对这些数据进行分组。此外,我需要将ip分成4个部分,并从文档中添加其他字段,如:

{
    "ip" : "0.1.10.200",
    "ip_part1" : "0",
    "ip_part2" : "1",
    "ip_part3" : "10",
    "ip_part4" : "200",
    "items" : [ 
     ...
    ]
}

我正在使用聚合框架进行ip分组。但我不知道如何将ip分成几部分。 $substr不合适,因为ip地址可能是: "100.110.0.0" "1.10.100.1" 所以我不知道IP地址的每个部分的开始和结束索引。

在聚合期间将ip拆分成部分的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

目前不可能在聚合中拆分字符串,认为你必须做最后一部分客户端。 或者在保存期间将拆分的部分存储在文档中。您可以在保存期间自动执行此操作。

更新:现在可以使用$split聚合启动3.4版本。

https://docs.mongodb.com/manual/reference/operator/aggregation/split/