【发布时间】:2011-12-26 01:34:24
【问题描述】:
我正在使用 Node.js 并尝试使用以下代码将时间戳数据存储在 Mongodb 数据库中:
`articleProvider.saveUser({
userID : user,
email : email,
address : "",
time : new Date().getTime(),
},function(error,userData){
if(!userData){ callback(error);}
else{ callback(null,userData);}
});
}
});`
并且存储在数据库中的数据是(来自 mongo shell):
{ "userID" : "hem", "email" : "hereshem@gmail.com", "address" : "Kathmandu", "time" : NumberLong("1320911838254"), "_id" : ObjectId("4ebb83dea7dd40990e000002") }
但如果我在 node.js 控制台中检索数据,则输出变为:
{ userID: 'hem',
email: 'hereshem@gmail.com',
address: 'Kathmandu',
time: { low_: -1938088914, high_: 307 },
_id: 4ebb83dea7dd40990e000002 }
现在我的问题是如何使用 NumberLong 数据检索字段“时间”的这个值?
它给出了“low_”和“high_”两个不同字段的输出。但是,我只想要输出 "1320911838254" 。
谁能帮帮我?
感谢您的回复。但我尝试使用
获取号码var value = new Long(low_bits, high_bits).toNumber();
正如 Lycha 先生所发布的,但在 Node.js 平台中显示错误“Long 未定义”为:
var value = new Long(user.time.low_, user.time.high_).toNumber();
ReferenceError: Long is not defined
at /home/developer/Desktop/Express/app.js:65:1
at /home/developer/Desktop/Express/public/js/processData.js:76:10
at /home/developer/Desktop/Express/public/js/dbQuery.js:196:16
at [object Object].<anonymous> (/home/developer/node_modules/mongodb/lib/mongodb/collection.js:743:5)
at [object Object].emit (events.js:67:17)
at [object Object].<anonymous> (/home/developer/node_modules/mongodb/lib/mongodb/connections/server.js:97:12)
at [object Object].emit (events.js:64:17)
at Socket.<anonymous> (/home/developer/node_modules/mongodb/lib/mongodb/connection.js:161:16)
at Socket.emit (events.js:64:17)
at Socket._onReadable (net.js:678:14)
如何在 node.js 中获取长解析器?有什么想法吗?
感谢 strada 的回复。但是如何在 Mongodb 中存储为 dateObject 呢? DataType 本身是定义的。有什么方法可以改变MongoDB中的数据类型吗? 以及如何解析它?
【问题讨论】: