Node.js+MongoDB如何存储字符串数组?存入时生成空数组怎么解决
问题原因
你在实例化Mongoose模型时传参格式不符合要求:你定义的Schema中存储数组的字段名为names,但创建ImgArray实例时直接传入了imgNames数组本身,没有将数组绑定到names字段上,Mongoose无法识别到对应字段的赋值,因此只会存入默认的空数组。
修复方案
- 修改实例化模型时的传参格式,将数组挂载到
names字段下:
import ImgArray from '../../Model/multiImages.js' let imgNames = req.files.map(imgName=>{ return imgName.originalname }) const imageArray = new ImgArray({ names: imgNames }) await imageArray.save()
- (可选优化)可以将Schema定义更严谨,明确指定数组内存储的是字符串类型,避免后续出现类型不匹配的问题:
const multiImagesSchema = mongoose.Schema({ names: [String] })
内容的提问来源于stack exchange,提问作者ASIF KAIF
相关产品推荐
相关产品推荐

