提问者:小点点

如何使用NodeJS在MongoDB中插入以毫秒为单位的时间戳作为NumberLong


我是nodejs的新手,并尝试使用nodejs将当前时间戳的mongoDB插入为毫秒,它作为双精度值插入。有人能帮我如何将其插入为NumberLong值吗?

var data = {
        myId : uniqueId,
        Timestamp : Date.now(),   ---> This one is getting inserted as double.
        userData : applicationData
      }
    }

我也尝试像这样插入,但它的插入作为字符串。

 var mongo=require('mongodb');
 var Long = mongo.Long;

 var data = {
        myId : uniqueId,
        Timestamp : Long.fromString((Date.now() + "")), ---> This one is getting inserted as String.
        userData : applicationData
      }
    }

共1个答案

匿名用户

这是因为JavaScript数字始终是64位浮点数。您可以使用Mongo驱动程序的Long(https://mongodb.github.io/node-mongodb-native/api-bson-generated/long.html)来解决此问题。

var Long = require('mongodb').Long;
var current_millies = new Date().getTime();

var data = {
 myId : uniqueId,
 timestamp : Long.fromNumber(current_millies),
 userData : applicationData
}