例如我有这个字段的文档:
startDate: 2021-04-14T22:00:00.000+00:00
endDate: 2021-04-19T22:00:00.000+00:00
并且我想获取特定日期(如今天)在日期范围内的所有文档。 是否可以进行这样的查询? 例如,如果我搜索 18th April,那么我会得到那个文档。
我是这样想的:
db.posts.find(
{
$gte: { startDate: new Date() },
$lt: { endDate: new Date() }
});
但这不起作用...我收到一个错误 The provided parameters were invalid. Check your query and try again.
我认为 Node.js 中的 new Date() 不正确?
编辑:
这是我的控制器:
const getActiveTours = async (req, res) => {
try {
const activeTours = await Tour.find({
startDate: { $gte: new Date() },
endDate: { $lt: new Date() },
}).exec();
res.status(200).send(activeTours);
} catch (error) {
return res.status(500).send({ errorMessage: error });
}
};
我导出了它,这是我的端点:
router.get('/getactivetours', tourController.getActiveTours);
我试图在 Postman 中调用它,但返回一个空的 []...
答案 0 :(得分:1)
你的语法错误,试试这个:
db.posts.find(
{
startDate: {$gte : new Date() },
endDate: {$lt : new Date() }
});