0

我有由数组和单个值组成的数据集

{
     "a": "18",
     "b": ["x","y","z"]
}

或数组和数组

{
     "a": ["g", "h", "i"],
     "b": ["x", "y", "z"]
}

我计划绘制出每个组合(如“18-x”、“18-y”、“18-z”或“gx”、“gy”......),然后计算这些组合(或做其他任何事情)。我已经习惯了 CouchDB 的发出函数:我只是为每个文档发出了多个组合。这应该如何在 RethinkDB 中完成?

注意:数据集由连接生成

4

1 回答 1

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')]).

于 2015-07-01T00:56:07.953 回答