我将时间序列数据存储在 mongodb 数据库中,其中一个字段是 ISODate 对象。我正在尝试检索 ISODate 对象在分钟和秒内具有零值的所有项目。也就是说,所有在一个小时内具有时间戳的对象。
有什么方法可以做到这一点,还是我需要为小时、分钟、秒创建单独的字段,并通过例如 find({"minute":0, "second":0}) 直接查询它们?
谢谢!
我将时间序列数据存储在 mongodb 数据库中,其中一个字段是 ISODate 对象。我正在尝试检索 ISODate 对象在分钟和秒内具有零值的所有项目。也就是说,所有在一个小时内具有时间戳的对象。
有什么方法可以做到这一点,还是我需要为小时、分钟、秒创建单独的字段,并通过例如 find({"minute":0, "second":0}) 直接查询它们?
谢谢!
你可以像@Devesh 说的那样做,或者如果它更适合你可以使用聚合框架:
db.col.aggregate([
{$project: {_id:1, date: {mins: {$minute: '$dateField'}, secs: {$second: '$dateField'}}}},
{$match: {mins: 0, secs: 0}}
]);
像这样。
您能否在集合中再添加一列,仅包含不含分钟和秒的日期时间。它将使您的查询更快且易于使用。它将是没有分钟和秒部分的日期时间列