我知道这已经讨论了很多次,但我认为我的场景是为了禁用速率限制检查:
文档格式为:
{ prefix: "004945", country: "Germany", type: "Mobile", carrier: "OrangeTel", price: "34"}
{ prefix: "004946", country: "Germany", type: "Mobile", carrier: "SomeOther", price: "46"}
.
.
.
{ prefix: "00807", country: "Unknown", type: "Satelite", carrier: "Inmarsat", price: "123"}
现在我想得到一个由这些前缀组成的数组,一些[country, type, carrier]
键或一个[country, type]
键
所以我像这样映射:
emit( [country, type, carrier],[prefix] )
我像这样减少:
reduce: function(keys, values, rereduce) {
return values.reduce(function(a, b) {return a.concat(b);})
}
问题是收缩率不够好,因为显然我以不同的形状返回相同数量的数据:我将一个包含许多元素的列表转换为一个包含少量元素的列表,每个元素都有很多数据。
我知道我可以使用列表函数等解决它,但我认为该场景对于禁用检查是有效的。此外,如果它存在,我想要任何使用 map-reduce 解决方案而不改变这些文档结构的想法。谢谢。