1
|
用户k6280494Lv6资深互助发布于5 天前
|
在 MongoDB 中查询前一天的文档,可以使用日期操作符和日期函数来指定查询条件。假设你的集合中有一个日期字段,例如 createdAt,你可以使用 $lt 和 $gte 操作符来指定前一天的日期范围。 以下是一个示例,展示了如何查询前一天的文档: javascript复制代码 | // 获取当前日期和时间 | | const currentDate = new Date(); | | | | // 获取前一天的日期和时间 | | const startOfDayYesterday = new Date(); | | startOfDayYesterday.setDate(currentDate.getDate() - 1); | | startOfDayYesterday.setHours(0, 0, 0, 0); | | | | const endOfDayYesterday = new Date(startOfDayYesterday); | | endOfDayYesterday.setHours(23, 59, 59, 999); | | | | // 执行查询 | | db.yourCollection.find({ | | createdAt: { | | $gte: startOfDayYesterday, | | $lt: endOfDayYesterday | | } | | }); |
在这个示例中: currentDate 获取当前日期和时间。 startOfDayYesterday 设置日期为前一天,并将时间设置为当天的开始时间(00:00:00)。 endOfDayYesterday 设置日期为前一天,并将时间设置为当天的结束时间(23:59:59.999)。 使用 db.yourCollection.find() 方法查询 createdAt 字段在前一天范围内的文档。
如果你使用的是 MongoDB 的聚合框架,可以类似地构建日期范围: javascript复制代码 | db.yourCollection.aggregate([ | | { | | $match: { | | createdAt: { | | $gte: new Date(new Date().setDate(new Date().getDate() - 1)).setHours(0, 0, 0, 0), | | $lt: new Date(new Date().setDate(new Date().getDate() - 1) + 1 * 24 * 60 * 60 * 1000 - 1).setHours(23, 59, 59, 999) | | } | | } | | } | | ]); |
注意,这里的日期设置逻辑与前一个示例相同,但在聚合框架中直接在 $match 阶段中使用。 请根据你的实际情况替换 yourCollection 和 createdAt 字段名。
|
-
张宇(提问者)
- {$and:[{hourAreaType:"区域"},{time:{$gte: new Date(new Date().setDate(new Date().getDate() - 1)).setHours(0, 0, 0, 0),$lt: new Date(new Date().setDate(new Date().getDate() - 1) + 1 * 24 * 60 * 60 * 1000 - 1).setHours(23, 59, 59, 999) }},{$or:[{userName:"张三"},{userName:"李四"}}]}]} 这样为啥不对呢?在kettle里 表输入的语句里 写的
|
|