我需要在MongoDB中进行from和to date查询。当没有from和to查询参数时,我的解决方案很好,但是当我在URL中写入时,它崩溃了。
有什么问题吗?或者你有更好的解决办法。
错误
{“字符串值”:“"{起始日期:'2022年12月31日星期六' }",“种类”:“字符串”,“值”:{“起始日期”:“2022年12月31日星期六”},“路径”:“日期”,“原因”:空,“值类型”:“对象”,“状态代码”:400}
途径
router.get("/:_id/logs", (req, res) => {
const fromDate = new Date(req.query.from).toDateString();
const toDate = new Date(req.query.to).toDateString();
User.findById(req.params._id)
.then((user) => {
Exercise.find({
$and: [
{ user: req.params._id },
fromDate !== "Invalid Date"
? { date: { $gte: { fromDate } } }
: {},
toDate !== "Invalid Date" ? { date: { $lte: { toDate } } } : {},
],
})
.limit(+req.query.limit)
.sort({ date: 1 })
.exec()
.then((exercises) =>
res.json({
username: user.username,
userId: user._id,
count: exercises.length,
logs: exercises,
})
)
.catch((err) => res.json({ ...err, statusCode: 400 }));
})
.catch((err) => res.json({ ...err, statusCode: 400 }));
});
1条答案
按热度按时间zbdgwd5y1#
在这种情况下,首先构建查询运算符更为简单: