Mongodb 为什么$gte和$lte不能在特定日期工作,如;2020/12/09“;获取类似ISODate的文档(“2020-12-09T04:32:37.266Z”)

Mongodb 为什么$gte和$lte不能在特定日期工作,如;2020/12/09“;获取类似ISODate的文档(“2020-12-09T04:32:37.266Z”),mongodb,Mongodb,我做错了什么?我正在尝试筛选日期匹配的文档:2020/12/09 let date= "2020/12/09"; let startDate = new Date(new Date(date).setHours(00, 00, 00)); // output: 2020-12-09T05:00:00.000Z let endDate = new Date(new Date(date).setHours(23, 59, 59, 999)); //output: 2020-1

我做错了什么?我正在尝试筛选日期匹配的文档:
2020/12/09

let date= "2020/12/09";
let startDate = new Date(new Date(date).setHours(00, 00, 00));  // output: 2020-12-09T05:00:00.000Z
let endDate = new Date(new Date(date).setHours(23, 59, 59, 999));  //output: 2020-12-10T04:59:59.999Z

let filter= {
  mydate: {
    $gte: startDate,
    $lte: endDate,
  },
};

collection:
[{ "mydate":ISODate("2020-12-09T04:32:37.266Z")}]


collection.aggregate(
 [
  {
    $match: filter
  }
 ]
)

没有找到匹配项

我认为结果是正确的,因为收集中的日期(2020-12-09T04:32:37.266Z)小于您的起始日期(2020-12-09T05:00:00.000Z)

我遇到了相同的问题。我认为问题在于日期字符串格式

新日期('2020/12/09')-->2020-12-08T16:00:00.000Z
新日期('2020-12-09')-->2020-12-09T00:00:00.000Z
我通过将日期字符串格式更改为yyyy-mm-dd,并使用
setUTCHours
方法而不是
setHours
解决了这个问题,因为我需要UTC时间

let date='2020-12-09'
让startDate=new Date(new Date(Date).setUTCHours(0,0,0,0));-->2020-12-09T00:00:00.000Z
让endDate=new Date(new Date(Date).setUTCHours(23,59,59,999));-->2020-12-09T23:59:59.999Z