Cómo almacenar grandes números en MongoDB con Node.js

Estoy usando MongoDB con el controlador de nodo nativo y necesito almacenar con precisión números que pueden ser más grandes que el máximo int. 2147483647. Tendré que ser capaz de incrementar el número mientras sigo el uso. ¿Cuáles son mis opciones?

Estoy usando la mongoose. El problema que tengo es que cuando I $inc pasado 2147483647 convierte el número a un doble. ¿Cómo puedo obligar a Mongoose a utilizar el int NumberLong 64 bits de largo?

Mi esquema se ve así

 var schema = new Schema({ ... usedBandwidth: {type: Number, min: 0, default: 0} }); 

Y mi $inc ve así

 model.Account.update( {_id: this.account}, {$inc: {usedBandwidth: this.size}}, function (err, doc) {} ); 

Ahora puede hacer esto en Mongoose con el plug-in de mongoose-long .

 require('mongoose-long')(mongoose); var SchemaTypes = mongoose.Schema.Types; var schema = new Schema({ ... usedBandwidth: {type: SchemaTypes.Long, min: 0, default: 0} }); 

MongoDB tiene un tipo de entero nativo de 64 bits, generalmente llamado NumberLong (al menos en el controlador / shell javascript de MongoDB). Si está utilizando el controlador nativo node-mongodb, creo que se llama Long (aunque no estoy seguro de esto, alguien me corrige si me equivoco). $inc funciona como se espera en campos de tipo NumberLong .