如何在使用NodeJS的MongoDB中将时间戳以毫秒为单位插入为NumberLong类型
如何在使用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 } }
在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中。