不知道到底是什么你求,但两个选项。
您可以使用检索> & & < =在建议的基于crontab的基础上。
var now = ISODate("2014-01-16T01:00:00.000Z");
var houragp = now - 1hr
db.collection.find({ "yourdate" : { $gt : hourago , $lte : now } })
或者查看this aggregation,将日期缩减为组件。请注意,$ yourdate这个关键字的美元符号是一个聚合成语。
db.sales.aggregate(
[
{
$project:
{
year: { $year: "$yourdate" },
month: { $month: "$yourdate" },
day: { $dayOfMonth: "$yourdate" },
hour: { $hour: "$yourdate" },
minutes: { $minute: "$yourdate" },
seconds: { $second: "$yourdate" },
milliseconds: { $millisecond: "$yourdate" },
dayOfYear: { $dayOfYear: "$yourdate" },
dayOfWeek: { $dayOfWeek: "$yourdate" }
}
}
]
)
您的情况可能只是需要。
db.sales.aggregate(
[
{
$project:
{
hour: { $hour: "$yourdate" },
}
}
]
)
您可以使用'new Date()'创建Date对象,并使用UTC方法获取当前UTC时间。然后构造一个查询以从数据库中获取适当的条目。那么这是一个JavaScript或SQL的问题? – RobG 2014-12-19 07:30:50
你如何在MongoDB中存储日期?我担心你将它们作为字符串存储,因为你正在使用'.toISOString()'。将日期存储为日期时间。要在您的应用程序中处理时间,只需使用UTC。当你得到时间时,转换为UTC。当你显示当地时间时,从UTC转换。在您的应用程序和数据库中,只需使用UTC即可 - 应该尽量减少混淆。 – wdberkeley 2014-12-19 16:16:21