可以使用以下MongoDB查询语句来获取status.operStartTime字段在3月18日到4月17日内每天15:00到17:30的数据:

db.collection.find({
   "status.operStartTime": {
      $gte: ISODate("2021-03-18T15:00:00.000Z"),
      $lte: ISODate("2021-04-17T17:30:00.000Z")
   }
})

这个查询语句会找到在指定时间范围内的所有文档。如果要进一步筛选出每天15:00到17:30的数据,可以使用MongoDB聚合管道来进行处理。下面是一个示例聚合管道:

db.collection.aggregate([
   {
      $match: {
         "status.operStartTime": {
            $gte: ISODate("2021-03-18T15:00:00.000Z"),
            $lte: ISODate("2021-04-17T17:30:00.000Z")
         }
      }
   },
   {
      $addFields: {
         "startHour": { $hour: "$status.operStartTime" },
         "startMinute": { $minute: "$status.operStartTime" }
      }
   },
   {
      $match: {
         $or: [
            { $and: [ { "startHour": 15 }, { "startMinute": { $gte: 0 } } ] },
            { $and: [ { "startHour": 16 }, { "startMinute": { $gte: 0 } } ] },
            { $and: [ { "startHour": 17 }, { "startMinute": { $lte: 30 } } ] }
         ]
      }
   }
])

这个聚合管道首先使用$match阶段来找到指定时间范围内的所有文档。然后使用$addFields阶段来计算每个文档的操作开始时间的小时和分钟数,并将它们存储到新的字段中。最后,在第二个$match阶段中使用$or操作符来选择每天15:00到17:30之间的文档

MongoDB查询statusoperStartTime这个字段在3月18日到4月17日内每天1500到1730的数据

原文地址: https://www.cveoy.top/t/topic/cEvF 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录