const queryMatch = {departureDate: {$gte: new Date(query.departureDateMin),$lte: new Date(query.departureDateMax)}};
const flightsByCriteria = await this.flightModel.find(queryMatch).exec();
上述请求返回一个空表。然而,我使用ISODate(dateString)
而不是new Date(dateString)
使用mongodbCompass获取数据
我不知道我的请求有什么问题?谢谢你的帮助。
您应该以ISO格式从客户端发送日期,这样服务器就不会将它们转换为服务器本地时间。
当您从客户端发送日期时,只需调用.toISOString()
方法即可发送:
{
departureDateMin: new Date(departureDateMin).toISOString(),
departureDateMax: new Date(departureDateMax).toISOString(),
}
然后,您可以这样查询数据库:
const queryMatch = {
departureDate: {
$gte: query.departureDateMin,
$lte: query.departureDateMax,
}
};
model.find({
departureDate: {
$gte: new Date(query.departureDateMin),
$lte: new Date(query.departureDateMax),
},
});