MongoDB投影设置:如何默认隐藏全部字段仅显示指定字段?
MongoDB投影:只显示特定字段的简洁写法
MongoDB不支持“先默认隐藏所有字段,再指定显示字段”的直接写法,但你可以通过仅指定需要显示的字段为1来实现相同需求,这比手动设置70个字段为0高效得多。
核心规则
MongoDB的投影逻辑有明确限制:
- 投影文档只能二选一:要么全是「包含规则」(字段设为1),要么全是「排除规则」(字段设为0)
- 唯一例外是
_id字段:可以在使用包含规则时,单独把_id设为0来隐藏它
示例用法
假设你的集合名为userData,只想展示username、phone、createTime三个字段,查询语句如下:
db.userData.find({}, { username: 1, phone: 1, createTime: 1, _id: 0 })
执行后只会返回这三个指定字段,其余70个字段都会被自动隐藏。
注意事项
- 如果不添加
_id: 0,查询结果默认会包含_id字段,不需要的话记得加上 - 不要混合使用包含和排除规则(除了
_id),否则MongoDB会返回错误
内容的提问来源于stack exchange,提问作者Dominik
相关产品推荐
相关产品推荐

