我有以下原型的文件:
{
title: "HD8200 DLP Projector",
normal_price: 4999.99,
specifications: [
{
ov: "HD (1920 x 1080)",
fn: "Resolution (Native / Max)",
o: 7,
f: 211
},
{
ov: "20000",
fn: "Contrast Ratio",
o: 15,
f: 225
}
]
}
我希望根据规格为此产品数据库创建过滤器列表。
如何为每个字段(o
)获取映射到其产品计数器的选项ID列表(f
)?
我们假设我需要为特定的字段ID列表(例如,211和225)实现此目的。
答案 0 :(得分:0)
编写一个映射器,为每个map()调用获取一个文档,并为每个选项写出一条记录。记录密钥是字段ID,值是标志“1”,产品标题和选项ID的串联。
编写另一个映射器来读取id的列表并写出具有相同格式的记录:键是字段ID,值是标志“0”和两个空字符串的串联。
编写Reducer以读入两个映射器写入的记录。每次调用reducer()都会传入为给定字段编写的所有记录。如果其中一个记录的标记为“0”,那么该字段就是您感兴趣的字段之一。只有这样,您才会为每个记录写一个带有“1”标记的记录。关键是产品标题,值是选项ID。
定义您的第一个作业驱动程序类以使用两个映射器和一个reducer。此步骤将为您指定的字段ID提供成对的产品选项。您需要第二份工作来按产品收集选项,反之亦然。