You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Mongoose Schema中修剪字符串数组的每个元素?当前trim配置是否有误?

问题解答

是的,你这里的trim: true配置位置确实错误了。直接在数组字段上设置trim,Mongoose无法识别为对数组内每个字符串元素的修剪操作(实际上数组本身没有trim方法,这个配置根本不会生效),自然达不到你想要的效果。

你忽略了Mongoose对数组类型字段的配置规则:如果要给数组中的每个元素添加修饰器(比如trim)或验证规则,不能直接在数组字段层面设置,而是要显式定义数组元素的完整Schema结构,把trim配置到元素的类型定义里。

修正后的代码如下:

description: {
    type: [{ type: String, trim: true }], // 将trim配置到数组内的String元素上
    required: [true, "Product description is required"],
    validate: {
        validator: array => {
            return array.length > 0 && array.every(str => str.trim() !== '');
        },
        message: "At least one description point is required.",
    },
}

这样修改后,Mongoose会自动对数组中的每个字符串元素执行trim操作,去除首尾空格。另外你原有的validate逻辑依然保留价值——它可以拦截用户输入全空格的字符串(trim后变为空串),确保数组中至少有一个有效的描述项。

内容的提问来源于stack exchange,提问作者Kalpana Media House

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 08:07:16