Node.js 如何使用node根据日期范围查询mongoDB?

Node.js 如何使用node根据日期范围查询mongoDB?,node.js,mongodb,mongoose,date-range,Node.js,Mongodb,Mongoose,Date Range,我知道已经有很多这样的问题了,但我看到的所有答案都不适用于我的情况。所以请容忍我 我现在有一个有效的查询: let query = [ { $match: { 'cityState': cityState, 'userId': userId } }]; 以下是查询的运行方式: Review.aggregate(query,function(err,respo

我知道已经有很多这样的问题了,但我看到的所有答案都不适用于我的情况。所以请容忍我

我现在有一个有效的查询:

let query = [
        {
            $match: { 
              'cityState': cityState,
              'userId': userId
            }
        }];
以下是查询的运行方式:

Review.aggregate(query,function(err,response){
我是网络新手,所以我不太清楚我在上面使用的是什么工具。我想调整上面的查询,将两个日期作为输入,并返回与所有参数匹配的评论。Review对象有一个givenDate字段,我想与之进行比较。因此,查询应该返回所有在我指定的两个日期之间有givenDate且与cityState和userId匹配的评论


我需要对查询做什么才能使其工作?我传递的日期格式如下:2019-08-21T07:04:48.263Z要进行比较,数据库的值和提供的输入必须是相同的数据类型。在本例中,将字符串输入转换为日期对象,并在查询数据库中的一系列日期时使用它们

let inputDateFrom = new Date(inputDate1) // inputDate1 is a string
let inputDateTo = new Date(inputDate2)

let query = [
  {
      $match: { 
          'givenDate': { $gte: inputDateFrom, $lte: inputDateTo },
          'cityState': cityState,
          'userId': userId
      }
  }
];


下面是查询日期范围为的日期字段的示例:。

要进行比较,数据库的值和提供的输入必须是相同的数据类型。在本例中,将字符串输入转换为日期对象,并在查询数据库中的一系列日期时使用它们

let inputDateFrom = new Date(inputDate1) // inputDate1 is a string
let inputDateTo = new Date(inputDate2)

let query = [
  {
      $match: { 
          'givenDate': { $gte: inputDateFrom, $lte: inputDateTo },
          'cityState': cityState,
          'userId': userId
      }
  }
];


下面是一个查询日期范围为的日期字段的示例:。

签出。如果你遇到特殊问题,我们可以帮助你。谢谢,@Joe。您在链接中共享的运算符似乎用于简单的数字比较,但日期呢?我有一个字符串作为参数,数据库中有日期对象。我如何进行比较?这可能会有帮助:签出。如果你遇到特殊问题,我们可以帮助你。谢谢,@Joe。您在链接中共享的运算符似乎用于简单的数字比较,但日期呢?我有一个字符串作为参数,数据库中有日期对象。如何进行比较?这可能有助于: