我在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拆分的最佳方式是什么?
发布于 2016-09-06 14:20:15
目前在聚合中拆分字符串是不可能的,我认为你必须做客户端的最后一部分。或者在保存过程中将拆分的部分存储在文档中。您可以在保存过程中自动执行此操作。
更新:从3.4版本开始,现在可以使用$split
聚合。
https://docs.mongodb.com/manual/reference/operator/aggregation/split/
https://stackoverflow.com/questions/39341481
复制相似问题