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

20 浏览
0 Comments

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

我是nodejs的新手,试图使用nodejs实现将当前时间戳以毫秒的形式插入到mongodb中,但插入的是双精度值。有谁能帮我将其插入为NumberLong值吗?

var data = {
        myId : uniqueId,
        Timestamp : Date.now(),   ---> 这个被插入为双精度值。
        userData : applicationData
      }
    }

我也尝试过这样插入,但它被插入为字符串。

 var mongo=require('mongodb');
 var Long = mongo.Long;
 var data = {
        myId : uniqueId,
        Timestamp : Long.fromString((Date.now() + "")), ---> 这个被插入为字符串。
        userData : applicationData
      }
    }

0
0 Comments

在MongoDB中使用NodeJS插入毫秒级时间戳作为NumberLong的原因是因为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
}

使用这种方法,可以将当前时间的毫秒级时间戳作为NumberLong类型插入到MongoDB中。

0