我的数据集由数组和单个值组成
{
"a": "18",
"b": ["x","y","z"]
}
或数组和数组
{
"a": ["g", "h", "i"],
"b": ["x", "y", "z"]
}
我计划绘制每个组合(例如" 18-x"," 18-y"," 18-z"或" g-x"," g-y" ...)以后计算这些(或做其他事情)。我习惯了CouchDB的发射功能:我只是为每个文档发出多个组合。这应该如何在RethinkDB中完成?
注意:数据集由连接
生成答案 0 :(得分:1)
我建议将这两个字段永远都是数组,即使数组有时只有一个值。
如果您这样做,可以使用concat_map
:
row('a').concatMap(function(a){
return row('b').map(function(b){
return a.add('-').add(b);
});
});
如果您想继续使用单个值和数组的混合,可以将r.row('a')
替换为r.branch(r.row('a').typeOf().eq('ARRAY'), r.row('a'), [r.row('a')])
来实现。