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

使用Mongoose实现MongoDB查询仅返回指定字段的问题求助

错误原因

你的代码存在语法错误:MongoDB find() 方法的第二个投影参数(用于指定返回字段)必须是一个完整的对象,你没有把email:1等字段规则包裹在大括号{}内,导致参数解析失败,过滤规则无法生效。

正确实现

原生MongoDB / Mongoose通用传参写法

字段规则需要用大括号包裹,如下:

// 默认会返回_id字段,不需要可主动添加_id:0关闭
UserDoc.find({}, { email: 1, dob: 1, hasInsurance: 1, isMarried: 1 })

Mongoose链式调用写法(可读性更高)

也可以用select方法单独指定返回字段:

// 字符串写法,多个字段用空格分隔
UserDoc.find({}).select('email dob hasInsurance isMarried')

// 对象写法,规则和投影参数一致
UserDoc.find({}).select({ email: 1, dob: 1, hasInsurance: 1, isMarried: 1 })
注意事项

MongoDB投影规则不支持同时混用字段包含和排除,仅_id字段的排除规则可以和其他字段的包含规则共存。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:45:04