sql >> Databáze >  >> NoSQL >> MongoDB

Otázka agregace MongoDB Map/Reduce Array

  1. "Chunking" pochází z vašeho kódu:parametr hodnot vaší funkce snížení může obsahovat buď {time:<timestamp>,value:<value>} vysílané z vaší mapové funkce nebo {time:[<timestamps>],value:[<values]} vrátil z předchozího volání vaší funkce snížení.

  2. Nevím, jestli se to stane v praxi, ale může se to stát teoreticky.

  3. Jednoduše požádejte, aby vaše mapová funkce emitovala stejný druh objektů, které vrací vaše funkce snížení, tj. emit(<id>, {time: [ts], value: [P[1]]}) a odpovídajícím způsobem změňte funkci snížení, tj. Array.push.apply(result.time, V.time) a podobně pro result.value .

    Vlastně nechápu, proč nepoužíváte pole párů čas/hodnota místo páru polí, tj. emit(<id>, { pairs: [ {time: ts, value: P[1] ] }) nebo emit(<id>, { pairs: [ [ts, P[1]] ] }) ve funkci mapy a Array.push.apply(result.pairs, V.pairs) ve funkci snížení. Tímto způsobem nebudete potřebovat ani funkci finalizace (možná kromě „rozbalení“ pole z párů vlastnost:protože funkce reduction nemůže vrátit pole, musíte jej tímto způsobem zabalit do objektu)




  1. Jak uložit binární objekt v redis pomocí uzlu?

  2. Proč redis nemůže nastavit maximální otevřený soubor

  3. Redis, vypršení platnosti relace a zpětné vyhledávání

  4. Jak se připojit k jiné databázi MongoDB jako superuživatel pomocí NodeJS?