Mongoose用户文档address子文档缺失street与city字段排查
Mongoose子文档street/city字段缺失问题解决
问题原因
你定义的addressSchema额外嵌套了一层address对象,而创建用户时传入的address数据结构直接包含street和city,两者结构不匹配。Mongoose会严格按照Schema定义的结构校验数据,不匹配的字段会被忽略,最终只生成子文档默认的_id字段。
修复方案
方案1:修正addressSchema(推荐)
去掉addressSchema中多余的嵌套层,让Schema结构和传入的数据匹配:
const addressSchema = new Schema({ street: String, city: String });
修改后,原有的创建用户代码无需改动,street和city会被正确保存到address子文档中。
方案2:调整创建数据的结构(不推荐)
如果必须保留Schema中的嵌套结构,创建用户时需要对应嵌套一层address:
const user = await User.create({ name: 'amal', age: 25, hobbies: ['weight lifting', 'Bowling'], address: { address: { street: 'ernakulam', city: 'kochi' } } });
内容的提问来源于stack exchange,提问作者Amal Ks
相关产品推荐
相关产品推荐

