sql >> Databasteknik >  >> NoSQL >> MongoDB

Lång ackumulator istället för Double i MongoDB group() funktion

Detta beror på att gruppkommandot faktiskt kör map/reduce, och map/reduce är ett javascript. I javascript är standardnummertypen en dubbel, på grund av detta returnerar den dubbelt.

Så du kan förmodligen slå in dina nummer med NumberLong(..) om du vill se långt i gruppkommandoresultat:

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

Har inte testat detta, men nästan säker på att det borde fungera.




  1. Valideringsfel Mongodb

  2. Hur kan jag sortera och begränsa med Mongoose

  3. MongoDB:Sharding på en enda maskin. Verkar det vettigt?

  4. Hur man använder variabler i MongoDB Map-reduce map funktion