如何获取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()")
答案 0 :(得分:1)
如果您只想从集合中删除过期的cookie,可以使用TTL collection feature,它将使用服务器上的后台工作人员自动删除过期的条目,因此使用服务器的时间:
db.Cookies.ensureIndex( { "expireOn": 1 }, { expireAfterSeconds: 0 } )
如果您确实需要查询,请使用在服务器上运行的服务程序或确保您的时钟合理同步,因为相当大的时钟会导致大量问题,尤其是对于Web服务器和电子邮件服务器。 (考虑HTTP标头,如Date
,LastModified
和If-Modified-Since
,电子邮件时间戳,针对重播攻击的HMAC /时间戳验证等。)