Regex Mongoose/MongoDB正则表达式使用变量查找查询

Regex Mongoose/MongoDB正则表达式使用变量查找查询,regex,node.js,mongodb,date,Regex,Node.js,Mongodb,Date,我尝试在mongoDB中使用mongoose框架和nodejs执行查找查询,并使用基于变量的正则表达式执行express。我可以部分地使用硬编码到代码中的静态字符串正确地查询,但是我需要使用一个值不断变化的变量来执行查询 该查询使用三个字段author、date和updated,应该遍历方案中的所有文档,并查找“date”或“updated date”类似于变量currentDate的所有文档,其格式始终为YYYY-mm-dd,其中author为authorname 主要问题是mongoDB使用

我尝试在mongoDB中使用mongoose框架和nodejs执行查找查询,并使用基于变量的正则表达式执行express。我可以部分地使用硬编码到代码中的静态字符串正确地查询,但是我需要使用一个值不断变化的变量来执行查询

该查询使用三个字段author、date和updated,应该遍历方案中的所有文档,并查找“date”或“updated date”类似于变量currentDate的所有文档,其格式始终为YYYY-mm-dd,其中author为authorname

主要问题是mongoDB使用ISO格式存储日期。执行时,字符串变量currentDate YYYY-mm-dd被格式化为ISO,这导致它只命中时间为00:00.000Z的文档,因为ISO格式2015-09-17为2015-09-17 00:00:00.000Z,不考虑时区

查询:

var currentDate = yyyy-mm-dd;

Scheme.find({$and:[{'local.author': author},
   {$or: [{'local.date': new RegExp(currentDate)}, 
          {'local.updated_date':new RegExp(currentDate)}]}]}
我也尝试过$gte和$lte变量,其中$gte=date today和<e=date Tomorday 00:00,但我无法让它工作,我在尝试执行正则表达式时遇到了障碍


我希望有一位杰出的regex专家能够提供帮助,谢谢!:

我没费多大力气就搞定了

var tomorrow = new Date();
var today = new Date();
tomorrow.setDate(tomorrow.getDate() + 1);
tomorrow.setHours(0,0,0,0);
today.setHours(0,0,0,0);

Scheme.find({$and:[{'local.author': author},{$or: [{'local.date': { $gt: today, $lt: tomorrow } },{'local.updated_date':{ $gte: today, $lt: tomorrow }}]}]}

尝试var currentDate=/\d{4}-\d{2}{2}/I得到错误:{[CastError:Cast to date对value/\date{4}-\date{2}{2}/at path local.updated_date]堆栈:[Getter/Setter],消息:'Cast to date对value/\\date date{4}-\\date date 2}/at path local.updated{date date,name:'CastError',kind:'date date/,路径:'updated.active_date'}它不是日期。。您是否尝试过使用/\d{4}-\d{2}/@karthikmanchala是的,但是我得到了以下错误CastError:Cast to date在路径local处的值/\d{4}-\d{2}{2}/失败。更新日期]我想我应该这样写吗?还是我做错了?var currentDate=/\d{4}-\d{2}{2}/;Scheme.find{$and:[{'local.author':author},{$or:[{'local.date':new RegExpcurrentDate},{'local.updated_date':new RegExpcurrentDate}]}非常感谢您的帮助