Javascript Mongoose按日期范围和时间查询
我的状况代码如下:Javascript Mongoose按日期范围和时间查询,javascript,node.js,mongodb,mongoose,momentjs,Javascript,Node.js,Mongodb,Mongoose,Momentjs,我的状况代码如下: if (req.query.df == "today") { start = moment().subtract(1,'days'); end = moment().add(1,'days'); condition = {"$gt":start, "$lt":end}; } else if(req.query.df == "yesterday") { start = moment().subtrac
if (req.query.df == "today") {
start = moment().subtract(1,'days');
end = moment().add(1,'days');
condition = {"$gt":start, "$lt":end};
} else if(req.query.df == "yesterday") {
start = moment().subtract(2, 'days');
end = moment().subtract(1, 'days');
condition = {"$gt":start, "$lt":end};
}
还有我的猫鼬查询:
QuestionResource
.find({$and: [{status: status}, {"created_at": condition}]})
第一个病例的结果“今天”
第二行不应在此数组中
另一个案例“昨天”
问题集合包含20多行,这些行在本周的不同时间创建
我该如何解决这个问题呢?如果这正是您想要完成的,那么您的查询都不能返回今天或昨天的条目。否则,它们的工作就完全符合书面要求 今天查询将返回从调用时的小时/分钟/秒(但昨天)到当前小时/分钟的所有记录。。。明天这就是为什么你会从昨天开始约会。如果您只需要今天的记录,则需要将$gt条件设置为昨天的实际结束(或今天的开始)。您可以使用矩().endOf('day')函数进行此操作 您可以使用类似的标准,因为它们在两天前和一天前的当前小时/分钟时间之间进行搜索。您可能没有该范围内的任何数据。您还需要将$gt和$it日期设置为一天结束时
[
{
"_id":"564717725971cffc2309e7a8",
"title":"asdasdas",
"text":"dasdasdasd",
"created_at":"2015-11-14T11:13:54.823Z"
},
{
"_id":"5637611ce6dafbf02af3c4b4",
"title":"fffffff",
"text":"asdasdasdasdasdasd",
"created_at":"2015-11-13T13:11:56.103Z"
}
]
[
]