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

如何在Mongoose中查询仅含userName和score的排序列表?

解决方法

你可以通过Mongoose的**投影(Projection)**功能指定只返回需要的字段,有几种简洁的实现方式:

方式1:在find()方法中传入投影参数

直接在find()的第二个参数里列出要保留的字段,用空格分隔;如果不需要_id,可以添加-_id排除它:

const subs = await Sub.find({}, 'userName score -_id').sort({ score: 'desc' });

方式2:使用对象形式定义投影

用键值对明确标记需要包含(值为1)或排除(值为0)的字段,__v会自动被排除:

const subs = await Sub.find({}, { userName: 1, score: 1, _id: 0 }).sort({ score: 'desc' });

方式3:使用select()链式调用

通过select()单独指定投影规则,可读性更强:

// 字符串形式
const subs = await Sub.find().select('userName score -_id').sort({ score: 'desc' });

// 对象形式
const subs = await Sub.find().select({ userName: 1, score: 1, _id: 0 }).sort({ score: 'desc' });

以上三种方式都能让查询结果仅保留userName和score字段,同时保持按score降序排序的逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 22:09:20