You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Node.js(Mongoose)中从MongoDB获取过去2天的数据?

使用Mongoose聚合查询获取指定时间范围的数据

当然可以用聚合查询实现这个需求,核心是利用聚合管道的$match阶段做条件筛选,逻辑和你原来的find查询完全一致。

基础实现(和原find逻辑一致)

先计算两天前的时间戳,再在聚合管道里用$match筛选符合条件的文档:

// 计算两天前的日期
const twoDaysAgo = new Date(Date.now() - 1000 * 86400 * 2);

// 聚合查询
const total_user = await User.aggregate([
  {
    $match: {
      createdAt: { $lte: twoDaysAgo }
    }
  }
]);

扩展:统计符合条件的用户数量

如果你的需求是统计用户数而非获取完整文档,可以在管道里追加$count阶段:

const userCountResult = await User.aggregate([
  {
    $match: {
      createdAt: { $lte: twoDaysAgo }
    }
  },
  {
    $count: "total_users"
  }
]);
// 返回结果为数组格式:[{ total_users: 123 }]
const total_users = userCountResult[0]?.total_users || 0;

注意事项

如果实际要找的是过去2天内创建的用户(即创建时间晚于两天前),只需把$lte改成$gte即可,可根据业务需求灵活调整条件。

内容的提问来源于stack exchange,提问作者lokendra birla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 04:55:18