RethinkDB多次在Map

时间:2017-06-25 22:41:43

标签: mapreduce rethinkdb

我已经尝试了RethinkDB一段时间了,我仍然不知道如何做这样的MongoDB示例:

https://docs.mongodb.com/manual/tutorial/map-reduce-examples/#calculate-order-and-total-quantity-with-average-quantity-per-item

在Mongo中,在map函数中,我可以迭代一个文档的数组字段,并发出多个值。

我不知道如何设置键在地图中发出或在地图函数中为每个文档返回多个值。

例如,我想从中得到:

{
'num' : 1,
'lets': ['a','b,'c']
}

[
{'num': 1, 'let' : 'a' }, 
{'num': 1, 'let' : 'b' },
{'num': 1, 'let' : 'c' }
]

我不确定我是否应该在RethinkDB中以不同的方式思考这个问题,或者使用与map-reduce不同的东西。

感谢。

1 个答案:

答案 0 :(得分:0)

我不熟悉Mongo;直接解决您的转换示例:

r.expr({
  'num' : 1,
  'lets': ['a', 'b', 'c']
})
.do(function(row) {
  return row('lets').map(function(l) {
    return r.object(
      'num', row('num'),
      'let', l  
    )   
  })
})

当然,您可以使用map()代替do()(如果不是单个对象)