我在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拆分成部分的最佳方法是什么?
答案 0 :(得分:1)
目前不可能在聚合中拆分字符串,认为你必须做最后一部分客户端。 或者在保存期间将拆分的部分存储在文档中。您可以在保存期间自动执行此操作。
更新:现在可以使用$split
聚合启动3.4版本。
https://docs.mongodb.com/manual/reference/operator/aggregation/split/