MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Long-Akkumulator anstelle von Double in der MongoDB-Funktion group()

Dies liegt daran, dass der Gruppenbefehl tatsächlich map/reduce ausführt und map/reduce ein Javascript ist. In Javascript ist der Standard-Zahlentyp ein Double, deshalb gibt es Doubles zurück.

Sie können also Ihre Zahlen wahrscheinlich mit NumberLong(..) umschließen wenn Sie das Ergebnis des langen Gruppenbefehls sehen möchten:

{
    ...
    initial: { count: new NumberLong(0) },
    reduce: "function (o, a) { a.count += new NumberLong(o.count); }"
}

Nicht getestet, aber fast sicher, dass es funktionieren sollte.