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

MongoDB查询find()可选参数用法:如何将isBoosted=True的用户优先返回

实现指定条件文档优先排序的MongoDB查询参数

你需要使用find()方法的sort可选参数完成该需求。

实现逻辑

MongoDB对布尔值进行排序时,默认true的排序优先级高于false,因此直接对isBoosted字段做倒序排列,即可让所有isBoosted = True的用户排在结果最前列:

// 基础查询写法
db.userCollection.find().sort({ isBoosted: -1 })

如果需要在同优先级的用户中叠加其他排序规则,可直接在sort参数内追加字段即可,比如同是boosted的用户按注册时间倒序排列:

// 叠加次级排序规则
db.userCollection.find().sort({ isBoosted: -1, registerTime: -1 })

复杂场景拓展

如果涉及多条件权重排序,可配合聚合查询实现更灵活的排序逻辑:

db.userCollection.aggregate([
  // 新增临时权重字段,isBoosted为true权重更高
  {
    $addFields: {
      sortWeight: {
        $cond: [{ $eq: ["$isBoosted", true] }, 10, 0]
      }
    }
  },
  // 按权重倒序
  { $sort: { sortWeight: -1 } },
  // 移除返回结果中的临时权重字段
  { $project: { sortWeight: 0 } }
])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 12:09:02