以纯文本格式 YYYY-MM-DD 存储时查询 MongoDB 中的日期

Query a date in MongoDB when it's stored as plain-text and format YYYY-MM-DD

我正在构建一个 "filtering" 系统,我需要查询集合中出生日期介于 2 个日期之间的用户。

我现在的代码如下:

if (req.query.ageMin) {
  var dobMin = new Date(dateNow.setFullYear(dateNow.getFullYear() - req.query.ageMin));
}
if (req.query.ageMax) {
  var dobMax = dateNow.setFullYear(dateNow.getFullYear() - req.query.ageMax);
}

if (dobMin && dobMax) {
  query.dob = {
    $gte: dobMin,
    $lt: dobMax
  }
} else if (dobMin) {
  query.dob = {
    $gte: dobMin
  }
} else if (dobMax) {
  query.dob = {
    $lt: dobMax
  }
}

db.users.find(query).toArray(function (err, users) {
  console.log(users);
});

返回一个空数组(没有错误)。 我假设这是因为集合中的日期不是日期对象——它们只是字符串,例如“1980-06-15”。 有没有我可以传递给查询的选项,以便 Mongo 在查询时使存储的日期成为日期对象?或者任何解决方案...

尝试将日期实例转换为字符串:

dobMin = dobMin.toISOString().substring(0, 10)
dobMax = dobMax.toISOString().substring(0, 10)