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

按优先级筛选指定数量用户的MongoDB高性能查询方案探讨

问题背景与需求

假设MongoDB聚合中的$$NOW变量值为2023-01-29T00:30:48.370+00:00,现有MongoDB记录如下:

[数据代码保持原样]

需要从上述数据中获取最多3条(或指定数量)结果,需严格遵循以下优先级规则:

  • 优先级1:随机选择注册时间小于24小时的用户,最多返回2条记录;
  • 优先级2:从剩余名额(总名额减去条件1返回的数量)中,随机选择过去7天内登录且注册时间超过24小时的用户;
  • 优先级3:仅当前两个条件未凑够总名额时,从剩余名额中随机选择过去8-15天内登录的用户;
  • 优先级4:若前3个条件仍未凑够总名额,随机选择其他任意用户。

预期结果示例如下:

[结果代码保持原样]
现有实现与疑问

我已实现以下聚合查询,能返回符合预期的结果:

[查询代码保持原样]

但存在以下疑问:

  • 是否有更高效的实现方式?
  • 当数据量达到百万级时,该查询的性能能否保持良好?
  • 当前方案是否已是最优解?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 13:20:33