2016-03-13 36 views
0

我使用https://www.npmjs.com/package/mongodb如何将我的正常时间戳转换为BSON时间戳?

MongoDB中已经把我戳成BSON(我知道这是正常的)

我的时间戳是这个641912491其中在数据库中它看起来像这样1457904327000.000000

我有一个名为date_in_the_past的密钥的文档,它保存了BSON格式的时间戳。

注意:我完全知道mongodb _id键包含一个日期,但在这种情况下它对我来说没有用,因为这将是文档写入db的日期(不是日期在我期待的过去)

我该如何将我的正常时间戳转换为BSON时间戳?

我试图了解mongodb/js-bsonmongodb/js-bson/blob/master/lib/bson/timestamp.js但我看不出如何去做。

的什么,我希望做

例如:

var past=timestampToBSON(641912491); 
db.collection('docs').find({date_in_the_past:past}).limit(1).toArray(function(e,r){}); 
+0

您是否尝试过使用JavaScript日期对象'var past = new Date(641912491 * 1000)' – adeneo

+0

yes that just just give me'Sat May 05 1990 14:01:31 GMT + 0100(BST)' –

+0

Isn'你试图查找的日期? – adeneo

回答

1

如果它被存储为BSON时间戳对象,你可以做这样的事情

var Timestamp = require('mongodb').Timestamp; 

var past = Timestamp(641912491,1); 
db.collection('docs').find({date_in_the_past:past}) 

db.collection('docs').find({date_in_the_past: Timestamp(641912491,1)}) 

它有一些关于它的更多信息和示例 https://docs.mongodb.org/manual/reference/bson-types/#timestamps