1

如何获取 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()")
4

1 回答 1

1

如果您只想从集合中删除过期的 cookie,您可以使用TTL 收集功能,该功能将使用服务器上的后台工作程序自动删除过期条目,从而使用服务器的时间:

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

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

于 2013-06-04T14:22:05.703 回答