查询数据库中昨日0点至今日0点创建的菜品数据
查询昨日0点至今日0点的菜品数据
首先修正你Schema里的两处小问题(Mongoose类型需大写,且Schema定义要闭合):
const dish = new Schema({ name: { type: String, }, createdAt: { type: Date, }, });
要获取昨日0点到今日0点之间创建的菜品,你需要先计算对应的时间范围,再用Mongoose的find方法查询:
// 计算今日0点的时间戳 const todayStart = new Date(); todayStart.setHours(0, 0, 0, 0); // 计算昨日0点的时间戳(基于今日0点往前推一天) const yesterdayStart = new Date(todayStart); yesterdayStart.setDate(yesterdayStart.getDate() - 1); // 执行查询 const targetDishes = await Dish.find({ createdAt: { $gte: yesterdayStart, // 大于等于昨日0点 $lt: todayStart // 小于今日0点 } });
解释:
- 使用
$gte和$lt可以精准匹配时间区间,避免包含今日0点及之后的数据 - 这种时间计算方式基于当前运行环境的时区,若需UTC时区,可改用
setUTCHours等方法调整
内容的提问来源于stack exchange,提问作者Sajag Pradhanang
相关产品推荐
相关产品推荐

