当前的MongoDB服务器时间在VB.Net中

时间:2013-06-03 21:53:53

标签: vb.net mongodb

如何获取MongoDB的时间或在VB.NET的查询中使用它?

例如,在Mongo shell中我会这样做:

db.Cookies.find({ expireOn: { $lt: new Date() } });

在PHP中,我可以很容易地做到这样的事情:

$model->expireOn = new MongoDate();

我如何在VB.Net中处理此问题?我不想使用本地机器的时间。这显然不起作用......

MongoDB.Driver.Builders.Query.LT("expireOn", "new Date()")

1 个答案:

答案 0 :(得分:1)

如果您只想从集合中删除过期的cookie,可以使用TTL collection feature,它将使用服务器上的后台工作人员自动删除过期的条目,因此使用服务器的时间:

db.Cookies.ensureIndex( { "expireOn": 1 }, { expireAfterSeconds: 0 } )

如果您确实需要查询,请使用在服务器上运行的服务程序或确保您的时钟合理同步,因为相当大的时钟会导致大量问题,尤其是对于Web服务器和电子邮件服务器。 (考虑HTTP标头,如DateLastModifiedIf-Modified-Since,电子邮件时间戳,针对重播攻击的HMAC /时间戳验证等。)