我有一个Couch数据库,其中包含一堆IP地址文档,如下所示:
{
"_id": "09eea172ea6537ad0bf58c92e5002199",
"_rev": "1-67ad27f5ab008ad9644ce8ae003b1ec5",
"1stOctet": "10",
"2ndOctet": "1",
"3rdOctet": "3",
"4thOctet": "55"
}
文档由多个IP组成,这些IP是不同子网范围的一部分。
我需要一种基于第一,第二,第三和第四个八位字节来减少/分组这些文档的方法,以便生成一个简化的子网列表。
之前有人做过这样的事吗。
最诚挚的问候,
Carlskii
答案 0 :(得分:0)
我不确定这是否正是您正在寻找的,如果您能提供更多关于您所需输出的示例,我可能会提供更多帮助。
首先,我希望您的文档结构如下所示:(如果您无法更改该结构,那么这不是什么大问题)
{
"ip": "10.1.3.55"
}
您的地图功能如下:
function (doc) {
emit(doc.ip.split("."));
}
你需要一个reduce功能,我刚刚在我的测试中使用过它
_count
然后我会使用group_level
视图查询参数根据每个八位字节进行分组。
group=true
在功能上与group_level=4