MongoDB无法存储复杂JSON文档,请求修正Match Schema
修正你的MongoDB Match Schema
先帮你揪出原Schema里的几个问题,这些应该就是导致你创建文档失败的原因:
- 拼写错误:
stumbeds应该是板球术语里的stumpeds,这是个笔误 - 无效语法:
batting对象里的...是非法的,Schema里不能留这种占位符 - 语法不完整:整个Schema的括号没有正确闭合,最后少了好几层
}和) - 可选优化:嵌套的数字字段可以加上默认值
0,这样创建文档时如果没传这些值,会自动设为0,避免出现undefined
下面是修正后的完整Schema:
const createMatchSchema = new Schema({ match_key: { type: String, required: true }, match_status: { type: String, required: true }, players: [{ fullname: String, innings: [{ fielding: { catches: { type: Number, default: 0 }, runouts: { type: Number, default: 0 }, stumpeds: { type: Number, default: 0 } // 修正拼写错误 }, batting: { dots: { type: Number, default: 0 }, sixes: { type: Number, default: 0 }, runs: { type: Number, default: 0 }, balls: { type: Number, default: 0 }, fours: { type: Number, default: 0 } // 这里移除了无效的`...`占位符,如果还有其他batting字段,直接在这里添加即可 } }] }] });
如果之后需要给batting或fielding添加更多字段,直接在对应的对象里补充字段名: { type: 类型, ...配置 }就可以了。另外,给数字字段加默认值0是个实用的小优化,能保证文档结构的一致性,避免缺失字段带来的问题。
内容的提问来源于stack exchange,提问作者Hitesh Sardana
相关产品推荐
相关产品推荐

