sql >> Database >  >> NoSQL >> MongoDB

MongoDB Map/Reduce Array-aggregatievraag

  1. De "chunking" komt van uw code:de parameter Values ​​van uw functie reduceren kan ofwel {time:<timestamp>,value:<value>} bevatten uitgezonden door uw kaartfunctie, of {time:[<timestamps>],value:[<values]} teruggekeerd van een eerdere oproep naar uw reduceerfunctie.

  2. Ik weet niet of het in de praktijk zal gebeuren, maar in theorie kan het gebeuren.

  3. Laat uw kaartfunctie gewoon hetzelfde soort objecten uitzenden als uw reductiefunctie retourneert, d.w.z. emit(<id>, {time: [ts], value: [P[1]]}) , en wijzig uw reduceerfunctie dienovereenkomstig, d.w.z. Array.push.apply(result.time, V.time) en op dezelfde manier voor result.value .

    Nou, ik begrijp eigenlijk niet waarom je geen array van tijd/waarde-paren gebruikt, in plaats van een paar arrays, d.w.z. emit(<id>, { pairs: [ {time: ts, value: P[1] ] }) of emit(<id>, { pairs: [ [ts, P[1]] ] }) in de kaartfunctie, en Array.push.apply(result.pairs, V.pairs) in de reduceerfunctie. Op die manier heb je de finalize-functie niet eens nodig (behalve misschien om de array uit de paren te "uitpakken" eigenschap:omdat de functie reduceer geen array kan retourneren, moet u deze op die manier in een object plaatsen)




  1. Meteor strategieën voor publiceren/abonneren voor unieke client-side collecties

  2. psycopg2 mislukt bij het uitvoeren van veel-instructies met syntaxisfout

  3. verwijder een ingesloten document in mongoid

  4. npm install -g mongodb installeert mongodb niet wereldwijd op OSX 10.8.4?