MongoDB嵌套Object数据插入失败,仅id字段写入问题求助
解决Mongoose嵌套Object无法写入的问题
问题根源
你的Mongoose Schema中,key、os_type、storage等字段都定义在data这个嵌套Object下,但你创建Phone实例时,要么直接把这些字段放在顶层,要么错误使用data.key这类写法,Mongoose会自动忽略Schema中未定义的顶层字段,导致只有id被写入。
正确写法
创建实例时,必须将嵌套字段包裹在data对象内部:
const iphone13p = new Phone({ id: "i13p", data: { key: "apple_iphone_13_pro", os_type: "iOS17", storage: "512GB" } }); iphone13p.save();
额外注意事项
- 若从API导出的JSON文件导入,需确保JSON结构与Schema完全匹配,示例格式如下:
{ "id": "i13p", "data": { "key": "apple_iphone_13_pro", "os_type": "iOS17", "storage": "512GB" } } - 如果导出的JSON结构不符合要求,可先对数据做转换,将顶层的嵌套字段移至
data对象内,再执行导入操作。
内容的提问来源于stack exchange,提问作者csycsa
相关产品推荐
相关产品推荐

