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

如何在MongoDB中筛选文档获取全部未解决与指定数量已解决数据

MongoDB 多条件查询合并实现方案

你可以使用MongoDB聚合管道中的$facet运算符,同时查询两类符合要求的文档再合并结果,无需发起两次独立查询,实现代码如下:

db.query.aggregate([
  {
    $facet: {
      // 匹配所有未解决的文档
      unsolved_list: [
        { $match: { is_solved: false } }
      ],
      // 匹配10条已解决的文档
      solved_list: [
        { $match: { is_solved: true } },
        { $limit: 10 }
      ]
    }
  },
  // 合并两个数组得到最终结果集
  {
    $project: {
      final_result: { $concatArrays: ["$unsolved_list", "$solved_list"] }
    }
  }
])

如果需要指定已解决文档的筛选顺序,比如优先返回最新提交的已解决问题,可以在solved_list分支的$match后增加排序规则,示例如下:

solved_list: [
  { $match: { is_solved: true } },
  // 按_id倒序,对应按文档插入时间从新到旧排序
  { $sort: { _id: -1 } },
  { $limit: 10 }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 02:54:01