MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Pergunta de agregação do MongoDB Map/Reduce Array


  1. O "chunking" vem do seu código:o parâmetro de valores da sua função de redução pode conter {time:<timestamp>,value:<value>} emitido de sua função de mapa, ou {time:[<timestamps>],value:[<values]} retornado de uma chamada anterior para sua função de redução.

  2. Não sei se vai acontecer na prática, mas pode acontecer na teoria.

  3. Basta fazer com que sua função de mapa emita o mesmo tipo de objetos que sua função de redução retorna, ou seja, emit(<id>, {time: [ts], value: [P[1]]}) , e altere sua função de redução de acordo, ou seja, Array.push.apply(result.time, V.time) e da mesma forma para result.value .

    Bem, eu realmente não entendo por que você não está usando uma matriz de pares de tempo/valor, em vez de um par de matrizes, ou seja, emit(<id>, { pairs: [ {time: ts, value: P[1] ] }) ou emit(<id>, { pairs: [ [ts, P[1]] ] }) na função map e Array.push.apply(result.pairs, V.pairs) na função de redução. Dessa forma, você nem precisará da função finalize (exceto talvez para "desempacotar" o array dos pares propriedade:como a função de redução não pode retornar uma matriz, você deve envolvê-la dessa maneira em um objeto)