MongoDB中如何将自行录入的文档_id字段展示到控制台与页面
出现这个情况通常是你使用的Mongoose Schema没有正确配置_id字段的返回规则导致的,可按以下方案解决:
方案1:修正Schema配置(推荐)
检查你的竞赛数据对应的Mongoose Schema定义,常见错误有两类:
- Schema中仅声明了
name字段,没有匹配你录入的_id字段的类型定义 - Schema配置项中手动加了
{ _id: false },禁用了_id字段的返回
修正后的Schema参考示例:
const mongoose = require('mongoose') const competitionSchema = new mongoose.Schema({ // 如果你自定义录入的是字符串类型_id,就改为type: String // 如果是MongoDB默认的ObjectId类型,保留下面的配置即可 _id: mongoose.Schema.Types.ObjectId, name: String }) // 不要添加 { _id: false } 配置项 const competitionTemplateCopy = mongoose.model('Competition', competitionSchema)
方案2:查询时强制指定返回字段
如果不想修改Schema,可直接在路由查询代码中通过select方法强制指定返回_id字段:
router.get('/getCompetitions', (request, response) => { competitionTemplateCopy.find() // 多个返回字段用空格分隔 .select('_id name') .then(data => response.json(data)) .catch(error => response.json(error)) });
修改完成后重启后端服务,再次触发前端请求,控制台打印的response.data中就会包含_id字段,需要在页面展示的话直接遍历取对应条目的_id属性即可。
内容的提问来源于stack exchange,提问作者AntonHPL
相关产品推荐
相关产品推荐

